※ ChatGPTを利用し、要約された質問です(原文:windowsサービスでロックやログオフなどをした時のそのログを残した)
Windowsサービスでロックやログオフなどをした時のログを残す方法
このQ&Aのポイント
Windowsサービスでロックやログオフなどをした時のログを残す方法を解説します。
SystemEventsクラスのイベントを使用する方法でログを残すことができます。
WindowsVistaで動かす場合、ダイアログを表示しないように設定する必要があります。
windowsサービスでロックやログオフなどをした時のそのログを残した
windowsサービスでロックやログオフなどをした時のそのログを残したいと思い、SystemEventsクラスのイベントを使ったのですが、イベント処理されませんでした。
http://msdn.microsoft.com/ja-jp/library/microsoft.win32.systemevents.sessionswitch.aspx
上記を見たところ、「このイベントは、メッセージ ポンプが実行している場合にだけ発生します。Windows サービスでは、非表示フォームが使用されていない場合、あるいはメッセージ ポンプを手動で開始していない場合は、このイベントは発生しません。」と書いてあり、
http://msdn.microsoft.com/ja-jp/library/microsoft.win32.systemevents.aspx
上記にあるソースを参考にしてサービスを作成しました。
そのサービスを起動させると「対話型サービスダイアログの検出」というダイアログが表示されました。
--------------------------------------------
対話型サービス ダイアログの検出
プログラムからデスクトップにメッセージを表示できません
プログラムがタスクを完了するには、情報またはアクセス許可が必要である可能性があります。
→メッセージを表示する
→数分後に通知する
プログラムまたはデバイスが確認を要求しています。
メッセージタイトル:
プログラムのパス:[サービスのexe]
受信日時:
この問題は、Windowsとの部分的な非互換性が原因で発生しました。
詳細については、プログラムまたはデバイスの製造元に問い合わせてください。
--------------------------------------------
どうすれば上記のダイアログ無しで動かせますか?
ちなみにOSはWindowsVistaです。