0

我正在用 C# 在 .Net 3.5 中开发 Windows 服务。此服务用于定期调用 Windows 窗体。现在我想将一个事件与服务挂钩,这样当用户尝试关闭系统时,也会出现 windows 窗体,从而阻止关闭过程。用户只能通过 Windows 应用程序关闭系统。

有没有办法在 Windows 服务中做到这一点?

编辑

我希望这仅在Win 2000 和 Win XP中完成。

谢谢

4

1 回答 1

2

服务不应与用户会话交互。在 Vista 和 Win7 中,这实际上是被禁止的。与用户会话交互的正确方法是在会话中拥有一个与服务通信的应用程序,因此您创建定期启动表单的服务的方法是有缺陷的。防止系统关闭听起来同样糟糕,Win7 将再次覆盖您的应用程序,显示一个暗淡的屏幕,建议用户杀死破坏者(这是行为不端的应用程序,你的)。

以您建议的方式改变用户体验的合法应用程序具有适当的 API 来执行此操作,例如 shell 替换。

于 2009-12-19T07:28:40.343 回答