-2

OntimeChange()を呼び出す関数を使用してsystemevent.Timechange()に登録するac#サービスを作成しました(MSDN http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.aspxに記載されています) Visual Studioでこのコードを実行すると(デバッグモードまたはリリースモードで)すべて正常に動作しますが、サービスを実行すると、関数OntimeChange()が呼び出されないことがわかりました(この関数のログに印刷を追加しました。ログには何も印刷されません)

誰かが助けることができますか?

4

2 に答える 2

1

SystemEvents.TimeChangedイベントの備考セクションで、次のテキストを読むことができます。

ノート

このイベントは、メッセージポンプが実行されている場合にのみ発生します。Windowsサービスでは、非表示のフォームが使用されているか、メッセージポンプが手動で開始されていない限り、このイベントは発生しません。Windowsサービスで非表示のフォームを使用してシステムイベントを処理する方法を示すコード例については、SystemEventsクラスを参照してください。

つまり、サービスでこれらのイベントを受信するには、非表示のフォームが必要です。その方法については、質問でリンクしたページにリストされている例2を参照してください。

于 2011-12-12T12:55:21.267 に答える
0

使用するAppDomain.CurrentDomain.BaseDirectory

于 2013-01-08T12:04:19.413 に答える