0
我想運行通過在C#服務應用程序的GUI應用程序,所以我有System.Diagnostics.Process.Start()方法,如下嘗試:如何運行通過在C#服務應用程序的GUI應用程序
if (KillTask("notepad") == false)
{
//ProcessStartInfo _ProcessStartInfo = new ProcessStartInfo(@"C:\WINDOWS\system32\notepad.exe");
//_ProcessStartInfo.UseShellExecute = false;
//_ProcessStartInfo.RedirectStandardError = true;
//_ProcessStartInfo.RedirectStandardInput = true;
//_ProcessStartInfo.RedirectStandardOutput = true;
//_ProcessStartInfo.CreateNoWindow = true;
//_ProcessStartInfo.ErrorDialog = false;
//_ProcessStartInfo.WindowStyle = ProcessWindowStyle.Maximized;
//System.Diagnostics.Process.Start(_ProcessStartInfo);
System.Diagnostics.Process.Start("notepad.exe");
}
問題是記事本運行但沒有UI,你可以在任務管理器中看到它,但沒有顯示記事本的GUI實例。
我也嘗試使用ProcessStartInfo()類,因爲您可以看到標記爲代碼,但問題仍然存在。
問題的根源在於服務不會在具有GUI /桌面的上下文中運行。 –
相關; http://stackoverflow.com/questions/267838/how-can-a-windows-service-execute-a-gui-application –
這是一個艱難的堅果要破解。您需要在當前交互式用戶的桌面上啓動該進程。遠非平凡。並且可能沒有交互式登錄用戶。我認爲你應該重新考慮從服務開始一個互動過程。 –