我正在用“C”编写服务,一旦用户试图停止服务,我想显示一个警告窗口(使用“确定”和“取消”按钮)。
是否有任何特定的Windows API可用于实现此目的? 任何其他简单的方法都可以实现??
答案 0 :(得分:1)
不,这是不可能的。 Windows服务无法直接与用户的桌面交互,因此他们将无法显示任何类型的用户界面。
但是,这不应该是一个大问题。您必须具有足够的权限来停止和启动服务,默认情况下,只有管理员具有这些权限。如果您不希望用户无意中停止您的服务,那么您应该利用权限为您解决该问题。答案 1 :(得分:0)
您使用服务控制面板停止服务;您的服务通常无法访问此控制面板进程,因此您无法覆盖它的UI并显示一个询问确定/取消的对话框。
答案 2 :(得分:0)
我刚刚学会了从服务对UI进行的任何调用将导致它挂起的困难方法。 MSDN确实有一个关于解决方案的页面here。
答案 3 :(得分:0)
如果您不希望任何人能够停止服务,只需告诉服务经理您不接受停止消息。您可以提供一个停止服务的应用程序(使用某种形式的IPC),并且该应用程序可以根据需要显示尽可能多的警告消息。
另一方面,会惹恼您的用户,而且不太可能。默认情况下,只有管理员才能停止服务,人们不太可能在没有充分理由的情况下尝试停止服务。