提问人:user2147570 提问时间:4/29/2013 更新时间:10/16/2013 访问量:8917
从 Windows 服务打开对话框窗口
Open a dialog window from a windows service
问:
我在 C# 中创建了一个 Windows 服务应用程序,以特定时间间隔弹出一个对话框窗口。在 Visual Studio 中调试时,它运行良好。然后我创建了一个安装设置。但是安装后,服务不会弹出对话框窗口。 原因是什么,我该如何解决?
答:
3赞
David Heffernan
4/29/2013
#1
服务在与交互式桌面隔离的会话 0 中运行。不能显示服务中的 UI。您需要运行单独的桌面进程来显示 UI,然后使用 IPC 在服务和桌面进程之间进行通信。
如果您的对话框足够简单,则可以使用 WTSSendMessage。
如果要定期运行代码,那么最好使用计划任务而不是服务。
1赞
Driftware
4/29/2013
#2
您的服务是如何安装的?您使用的是哪个 Windows 版本?
如果 vista/7 是否显示交互式服务检测?
底线是 Windows 服务,其中从未为用户交互而设计。
但是,有一种方法,但我建议使用不同的方式与用户交互
将 Windows 服务设置为与桌面交互可能会带来安全问题。
我发布了这个链接 希望对您有所帮助
评论
Try Catch
log