从Windows服务打开一个对话框窗口

时间:2013-04-29 06:57:22

标签: c# .net windows service

我在C#中创建了一个Windows服务应用程序,以特定的间隔弹出一个对话框窗口。在Visual Studio中进行调试时,它运行良好。然后我创建了一个安装设置。但是在安装服务后没有触发弹出对话框窗口。 原因是什么?如何解决?

2 个答案:

答案 0 :(得分:3)

服务在会话0中运行,该会话0与交互式桌面隔离。您无法从服务中显示UI。您需要运行单独的桌面进程来显示UI,然后使用IPC在服务和桌面进程之间进行通信。

如果您的对话框足够简单,则可以使用WTSSendMessage

如果您想定期运行代码,那么您可能最好使用计划任务而不是服务。

答案 1 :(得分:1)

您的服务是如何安装的?你有什么Windows版本?

如果vista / 7会显示交互式服务检测?

底线是从未设计用于用户交互的Windows服务。

然而,有一种方法,但我建议使用不同的方式与用户进行交互

设置Windows服务以与桌面交互可能会带来安全问题。

我发布此链接希望它有所帮助

http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/1c3d4b96-c58b-465a-a964-89926bd455f1/