如何使用Windows服务弹出应用程序c#

问题描述 投票:0回答:2

我想使用Windows服务弹出一个应用程序。

现在我正在使用的代码是:

System.Diagnostics.Process.Start(@" ");

当我开始运行服务时,该代码不会弹出应用程序。

c# windows-services
2个回答
1
投票

你不能这样做。自Windows Vista以来,用户会话交互已被删除。该过程将在服务运行的会话中启动,根据定义,该会话不是桌面交互式。

你可以做的是运行无窗口控制台工具。


长话:在Vista之前,所有服务都在与第一个登录用户相同的会话中运行(“会话0”)。由于这是一个安全问题,因此在Vista中进行了更改,其中专用会话(“会话0”)从一开始就处于活动状态。第一个用户登录会话1,下一个用户登录会话2等。

由于这些会话的分离,不再可能创建桌面交互式服务 - 没有服务的桌面会话。

这也意味着您无法在会话0中显示消息框或运行桌面交互式工具 - 没有人可以看到它们。


0
投票

这是你正在使用的确切代码吗?

如果是这样,你实际上并没有给进程任何东西开始,只是一个空字符串。您需要将可执行文件的名称传递给它。

例如:

System.Diagnostics.Process.Start(@"C:\Windows\System32\notepad.exe");

如果这不是确切的代码,请使用确切的代码修改问题。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.