我有一個模塊需要運行一個小的.Net命令行程序來檢查更新。一切都很好,但我無法抑制顯示命令提示輸出。使用.NET從已啓動的命令行應用程序抑制命令窗口
該應用擁有它自己的Windows窗體,如果它檢測到更新,它會彈出。更新需要作爲一個獨立的應用程序運行,因爲它需要與從其啓動的DLL不同的執行上下文。
string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + "\\" + AUTO_UPDATE_EXENAME;
updater.StartInfo.FileName = path;
updater.StartInfo.Arguments = AUTO_UPDATE_PARAMETERS;
updater.StartInfo.CreateNoWindow = false;
updater.StartInfo.UseShellExecute = false;
updater.StartInfo.RedirectStandardOutput = true;
updater.StartInfo.WorkingDirectory = path;
updater.Start();
我已經嘗試了最重要的CreateNoWindow
,UseShellExecute
和RedirectStandardOutput
和他們每個人的結果不同的工作組合,在這惱人的黑盒子彈出。該應用程序確實寫入標準輸出,但我只用它進行調試,用戶不應該真正看到它生成的文本。
假設CreateNoWindow
和/或RedirectStandardOutput
應該防止盒子彈出,但它無論如何設置這些變量。
另請參閱:http://stackoverflow.com/questions/836427/how-to-run-a-c-console-application-with-the-console-hidden/836436#836436 – 2010-02-06 01:20:30
哇,錯過了那一個。謝謝! – 2010-02-06 01:23:36