我在“C”写一个服务,我想显示一个警告窗口,一旦用户试图停止服务(点击“确定”和“取消”按钮)。
是否有任何特定的Windows API可用来实现这一目标? 任何其他简单的方法有没有实现?
我在“C”写一个服务,我想显示一个警告窗口,一旦用户试图停止服务(点击“确定”和“取消”按钮)。
是否有任何特定的Windows API可用来实现这一目标? 任何其他简单的方法有没有实现?
不,这是不可能的。 Windows服务是无法直接与用户的桌面进行交互,所以他们将无法显示任何类型的用户界面。
这真的不应该是一个大问题,虽然。 你必须有足够的权限来停止和启动服务,默认情况下,只有管理员拥有这些权利。 如果你不希望用户在不经意间停止服务,那么你应该利用权限来解决这个问题你。
你停止与服务控制面板的服务; 您的服务一般不会访问该控制面板的过程,所以你不能覆盖它的用户界面和显示一个对话框,询问确定/取消。
我刚刚学会了艰辛的道路,从服务到用户界面所做的任何调用将导致其挂起。 MSDN确实有一个页面在这里的变通。
如果你不希望任何人能够停止服务,只是告诉你不接受停止消息服务管理。 您可以改为提供停止服务(使用某种形式的IPC)的应用程序,当你想要一个应用程序可以表现为许多警告消息。
在另一方面,这会惹恼你的用户,它不太可能是必要的。 默认情况下,只有管理员可以停止服务,人们不太可能尝试没有一个很好的理由,停止你的服务。