Swo*_*op 3 .net c# windows-services
是否可以启动一个程序,以便具有Windows服务的用户可以使用它?我一直在使用C#中的Process.Start().我可以启动服务以启动进程下任务管理器列表中出现的某种进程.但是,程序nevers出现在屏幕上.默认情况下,它在用户名"SYSTEM"下运行.我已调整服务管理器中的"登录"选项以匹配登录到计算机的人员,但这不会导致窗口出现.
我觉得我要么缺少一个简单的设置,要么为此需要采取不同的方向.下面是我一直在使用的代码,用于启动Firefox作为测试应用程序.
private void startRunDap()
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "Firefox";
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.UseShellExecute = true;
Process.Start(startInfo);
//Process.Start("Firefox");
}
Run Code Online (Sandbox Code Playgroud)
在Vista和Win7服务上使用私人桌面在他们自己的会话中运行.您将启动Firefox,但它永远不可见.帐户名实际上是这样的,LocalSystem是一个高度特权的帐户,一个巨大的安全漏洞.
您将需要在用户会话中使用"代理"来启动该过程.一个不可见的程序,您可以使用Run键或Startup文件夹开始,该文件夹通过命名管道或套接字与服务进行通信.它可以启动该程序.