CMD – 執行 .bat 檔之後 如何關閉CMD視窗

CMD – 執行 .bat 檔之後 如何關閉CMD視窗

CMD – 執行 .bat 檔之後 如何關閉CMD視窗


資料來源: https://www.weithenn.org/2014/01/cmd-exit-after-exec-batch-file.html



code(bat)

@ECHO OFF

REM 執行對應軟體 CMD不咬住(不等待對應程式執行完畢,才繼續往後執行)
start "" "C:\Program Files (x86)\WinEdt Team\WinEdt\WinEdt.exe"

REM 關閉CMD畫面
exit


code(C#)

        public static void ShowSoftKeyboard()//顯示/呼叫 螢幕鍵盤/軟體鍵盤
        {
            try
            {
                //關閉螢幕鍵盤(尋找已開啟的軟體並將它關閉)
                System.Diagnostics.Process[] MyProcess = System.Diagnostics.Process.GetProcessesByName("osk");
                if (MyProcess.Length > 0)
                {
                    MyProcess[0].Kill();
                }

                //Any CPU 寫法
                //https://social.msdn.microsoft.com/Forums/vstudio/en-US/3cf45aac-fab9-45f0-b416-cc504daf71da/processstart-elevation-and-uac?forum=csharpgeneral       
                /*Process process = new Process();
                process.StartInfo.UseShellExecute = true;
                process.StartInfo.WorkingDirectory = "C:\\";
                process.StartInfo.FileName = "C:\\WINDOWS\\system32\\osk.exe";
                //process.StartInfo.Verb = "runas";
                process.Start();*/

                //透過cmd的start執行軟體鍵盤 讓cmd不咬住 並且透過exit將cmd畫面關閉 [透過cmd克服C# x32程式無法呼叫 x64系統應用程式的問題]
                Process.Start(@"c:\Windows\Sysnative\cmd.exe", "/c start osk.exe exit");
            }
            catch (Exception ex)
            {
                String StrLog = String.Format("{0}:{1}", "ShowSoftKeyboard", ex.ToString());
                LogFile.Write("ProcessError ; " + StrLog);
            }

        }

PS. JAVA UI應用程式也會應用類似技巧來做為啟動程式的技巧 (EX: apache-jmeter)


發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *