0

SessionSwitchc#を使用してWindowsアプリケーションのイベントからメソッドを呼び出すにはどうすればよいですか? デリゲートの使用が必要ですか? サンプルコードを手伝ってください。

4

2 に答える 2

2

このような:

SystemEvents.SessionSwitch += HandleSessionSwitch;

...

private static void HandleSessionSwitch(object sender, Microsoft.Win32.SessionSwitchEventArgs e)
{
    // do something
}

注: アプリケーションがシャットダウンするか、メモリ リークが発生する可能性がある場合は、このイベントのサブスクライブを解除する必要があります ( MSDN のドキュメントで説明されています)。

于 2012-09-06T07:17:19.813 に答える
1

Microsoft.Win32.SystemEvents.SessionSwitchイベントを処理する必要があります。ハンドラー メソッドは次のようにする必要があることに注意してくださいstatic

SystemEvents.SessionSwitch += new SessionSwitchEventHandler(SystemEvents_SessionSwitch);
[...]
static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
{
    // your code goes here
}

または、いつものように、ラムダ式で行います。

SystemEvents.SessionSwitch += (sender, e) => { /* your code*/ };
于 2012-09-06T07:25:21.263 に答える