我正在使用C#开发.Net 3.5中的Windows服务。此服务用于定期调用Windows窗体。现在我想 将事件挂钩到服务 ,以便当用户尝试关闭系统时,也会出现Windows窗体,从而阻止关闭过程。然后,用户只能通过Windows应用程序关闭系统。
有没有办法在Windows服务中执行此操作?
修改
我希望在 Win 2000和仅限Win XP 中完成此操作。
由于
答案 0 :(得分:2)
服务不应与用户会话交互。在Vista和Win7中,这实际上是禁止的。与用户会话交互的正确方法是在会话中使用与服务通信的应用程序,因此创建定期启动表单的服务的方法存在缺陷。防止系统关闭听起来同样糟糕,Win7将再次用昏暗的屏幕覆盖您的应用程序,建议用户杀死破坏者(这是行为不端的appp,你的)。
改变用户体验的合法应用程序以您建议的方式使用适当的API,例如shell替换。