如何使用Windows服务弹出应用程序c#
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Windows服务弹出应用程序c#相关的知识,希望对你有一定的参考价值。
我想使用Windows服务弹出一个应用程序。
现在我正在使用的代码是:
System.Diagnostics.Process.Start(@" ");
当我开始运行服务时,该代码不会弹出应用程序。
答案
你不能这样做。自Windows Vista以来,用户会话交互已被删除。该过程将在服务运行的会话中启动,根据定义,该会话不是桌面交互式。
你可以做的是运行无窗口控制台工具。
长话:在Vista之前,所有服务都在与第一个登录用户相同的会话中运行(“会话0”)。由于这是一个安全问题,因此在Vista中进行了更改,其中专用会话(“会话0”)从一开始就处于活动状态。第一个用户登录会话1,下一个用户登录会话2等。
由于这些会话的分离,不再可能创建桌面交互式服务 - 没有服务的桌面会话。
这也意味着您无法在会话0中显示消息框或运行桌面交互式工具 - 没有人可以看到它们。
另一答案
这是你正在使用的确切代码吗?
如果是这样,你实际上并没有给进程任何东西开始,只是一个空字符串。您需要将可执行文件的名称传递给它。
例如:
System.Diagnostics.Process.Start(@"C:WindowsSystem32
otepad.exe");
如果这不是确切的代码,请使用确切的代码修改问题。
以上是关于如何使用Windows服务弹出应用程序c#的主要内容,如果未能解决你的问题,请参考以下文章