8

外部サーバー (イントラネット経由でログイン セッションを維持する) と通信する VB.NET アプリがあり、スリープ/休止状態イベントをリッスンして、それが発生したときに、コンピューターがスリープ状態になる前に既存のセッション システムをログアウトしたい、私のアプリはバックグラウンドで実行されたままですが、何もしません。

逆に、コンピューターが休止状態から復帰したとき、またはスリープから復帰したときに、すぐにサーバーにログインしたいと考えています。

これらのイベントを取得してコードを実行するにはどうすればよいですか? これは、VB で使用することになっている Win32 API に関連していると思います。

ありがとう。

4

2 に答える 2

10

アプリケーションがウィンドウを使用していて、メッセージ ループを読み取ることができる場合は、次のようにMicrosoft.Win32.SystemEvents.PowerModeChangedをサブスクライブできます。

AddHandler Microsoft.Win32.SystemEvents.PowerModeChanged, AddressOf SystemEvents_PowerModeChanged

Private Sub SystemEvents_PowerModeChanged(ByVal sender As Object, ByVal e As PowerModeChangedEventArgs)

    Select Case e.Mode
        Case PowerModes.Resume
        Case PowerModes.StatusChange
        Case PowerModes.Suspend
    End Select

End Sub

それ以外の場合、たとえばサービスを使用している場合は、ここで説明されているような非表示のフォームを作成する必要があります (「例 2」までスクロールします)。

于 2012-07-22T06:01:40.743 に答える