我正在嘗試使用 cmd 中的命令模擬數據庫的更新,但我需要能夠運行從 cmd 調用這些命令的 .exe 并繼續使用相同的 cmd 窗口。我試圖隱藏 Process 將創建的窗口,這工作正常,但是當我運行 myFile.exe 時,它會掛起用于運行它的 cmd 窗口,直到進程完成。這是一個問題,因為完成后我的代碼將一次運行幾個小時,我寧愿不打開死的 cmd 窗口只是為了運行應用程序。目前 ProcessWindowStyle.Hidden 是我用來調用命令并隱藏窗口的方法,該命令將數據庫中的第一個值每半秒設置為數字 0-25,但我無法使用 cmd 窗口,直到它達到 25 并且退出應用程序。static void Main(string[] args){ int Number_Of_Args = args.Length; int[] Arguments = Check_Args(args, Number_Of_Args); Run_Command(Arguments);}public static void Run_Command(int[] Arguments){ System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; startInfo.FileName = "cmd.exe"; for (int i = 0; i <=25 ; i++) { startInfo.Arguments = "/C dbset 1 = " + i.ToString(); process.StartInfo = startInfo; process.Start(); Thread.Sleep(500); }}完成后,我需要 for 循環成為一個 while 循環,它將不斷更改數據庫值,因此將其掛在 cmd 窗口中并不理想。我的最終目標是能夠使用“C:\filelocation Simulation.exe arg1 arg2 arg3”從 cmd 調用我的應用程序,并讓它開始運行和更新數據庫,同時我可以使用 cmd 窗口處理其他事務。編輯:我可以調用 Start Simulation.exe,它將打開一個新的 cmd 窗口并在新窗口中運行代碼,并使我可以控制原始窗口。如果我可以讓 Start Simulation.exe 隱藏新的 cmd 窗口,或者讓代碼默認為在簡單地調用時啟動一個新窗口 Simulation.exe,這可能就是我所需要的,盡管兩者兼而有之是最好的,就像前面所說的那樣,這樣我就可以運行命令并且不會失去對當前cmd窗口的控制。
如何在后臺運行c#控制臺應用程序.exe?
慕桂英4014372
2023-08-20 11:05:15