使用 C# 從 Windows 服務執行 EXE 程式
由於固有的限制,使用 C# 從 Windows 服務執行 EXE 程式需要仔細考慮。 🎜>
問題語句
嘗試從 Windows 服務使用 System.Diagnostics.Process.Start() 啟動 EXE 程式可能會失敗。問題中提供的程式碼示範了此問題:System.Diagnostics.Process.Start(@"E:\PROJECT XL\INI SQLLOADER\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe");
問題說明
Windows 服務在隔離會話中運行,阻止它們與使用者互動或桌面。此限制禁止它們執行需要使用者互動或存取桌面的應用程式。注意事項
解決方案
1.使用標準Windows應用程式:
將程式碼執行移轉到標準 Windows 應用程式(例如 Windows 窗體、WPF、控制台)。這允許應用程式在當前用戶的上下文中運行並與桌面互動。2.禁止建立視窗:
修改控制台應用程式的程式碼以禁止建立控制台視窗。這可以透過將 CreateNoWindow 新增至 ProcessStartInfo 選項來實現:ProcessStartInfo psi = new ProcessStartInfo() { FileName = @"E:\PROJECT XL\INI SQLLOADER\ConsoleApplication2\ConsoleApplication2\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe", CreateNoWindow = true }; System.Diagnostics.Process.Start(psi);
其他資源:
以上是Windows 服務如何執行外部 EXE 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!