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 –
这是一个艰难的坚果要破解。您需要在当前交互式用户的桌面上启动该进程。远非平凡。并且可能没有交互式登录用户。我认为你应该重新考虑从服务开始一个互动过程。 –