0

「C」でサービスを作成していますが、ユーザーがサービスを停止しようとすると(「OK」ボタンと「キャンセル」ボタンを使用)、警告ウィンドウを表示したいと思います。

これを実現するために利用できる特定のWindowsAPIはありますか?達成するための他の簡単な方法はありますか?

4

4 に答える 4

1

いいえ、これは不可能です。Windows サービスはユーザーのデスクトップと直接やり取りできないため、ユーザー インターフェイスを表示することはできません。

ただし、これは大したことではないはずです。サービスを停止および開始するには、適切な権限が必要です。デフォルトでは、管理者のみがこれらの権限を持っています。ユーザーが不用意にサービスを停止してほしくない場合は、パーミッションを利用してその問題を解決する必要があります。

于 2012-05-12T04:36:32.310 に答える
0

サービス コントロール パネルでサービスを停止します。サービスは通常、このコントロール パネル プロセスにアクセスできないため、UI をオーバーライドして、OK/キャンセルを求めるダイアログを表示することはできません。

于 2012-05-12T04:36:35.027 に答える
0

サービスから UI を呼び出すとサービスがハングするという難しい方法を学びました。MSDN には、回避策に関するページがここにあります。

于 2012-05-12T05:19:45.010 に答える
0

誰にもサービスを停止させたくない場合は、停止メッセージを受け入れないことをサービス マネージャーに伝えてください。代わりに、(何らかの形式の IPC を使用して) サービスを停止するアプリケーションを提供することができ、そのアプリケーションは必要な数の警告メッセージを表示できます。

一方で、これユーザーを苛立たせますが、必要になる可能性は低いです。デフォルトでは、サービスを停止できるのは管理者のみであり、ユーザーが正当な理由なしにサービスを停止しようとすることはほとんどありません。

于 2012-05-12T22:30:05.027 に答える