Получить события сна / гибернации и возобновления / пробуждения в визуальном режиме Basic.NET
У меня есть VB.NET приложение, которое взаимодействует с каким-то внешним сервером (поддерживает сеансы входа через интрасеть), и я хочу прослушивать события сна/гибернации, так что когда это произойдет, я хочу выйти из существующей системы сеансов до того, как компьютер перейдет в спящий режим, в то время как мое приложение будет работать в фоновом режиме, но ничего не будет делать.
И наоборот, когда компьютер возвращается из спящего режима или просыпается от сна, я хочу немедленно войти на сервер.
Как я могу схватить эти события и выполнить мой код? Я считаю, что это относится к Win32 API, который я должен использовать в VB.
Спасибо.
2 ответа:
Если ваше приложение использует окно и может читать цикл сообщений, вы можете просто подписаться на Microsoft.Win32.Системные события.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
В противном случае, если вы используете сервис, например, вы должны создать скрытую форму, как описано здесь (прокрутите вниз до 'Example 2')