用户尝试停止服务后的警告窗口

时间:2012-05-12 04:30:30

标签: c windows winapi service windows-services

我正在用“C”编写服务,一旦用户试图停止服务,我想显示一个警告窗口(使用“确定”和“取消”按钮)。

是否有任何特定的Windows API可用于实现此目的? 任何其他简单的方法都可以实现??

4 个答案:

答案 0 :(得分:1)

不,这是不可能的。 Windows服务无法直接与用户的桌面交互,因此他们将无法显示任何类型的用户界面。

但是,这不应该是一个大问题。您必须具有足够的权限来停止和启动服务,默认情况下,只有管理员具有这些权限。如果您不希望用户无意中停止您的服务,那么您应该利用权限为您解决该问题。

答案 1 :(得分:0)

您使用服务控制面板停止服务;您的服务通常无法访问此控制面板进程,因此您无法覆盖它的UI并显示一个询问确定/取消的对话框。

答案 2 :(得分:0)

我刚刚学会了从服务对UI进行的任何调用将导致它挂起的困难方法。 MSDN确实有一个关于解决方案的页面here

答案 3 :(得分:0)

如果您不希望任何人能够停止服务,只需告诉服务经理您不接受停止消息。您可以提供一个停止服务的应用程序(使用某种形式的IPC),并且该应用程序可以根据需要显示尽可能多的警告消息。

另一方面,惹恼您的用户,而且不太可能。默认情况下,只有管理员才能停止服务,人们不太可能在没有充分理由的情况下尝试停止服务。