Получить события сна / гибернации и возобновления / пробуждения в визуальном режиме 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')