Obtenha os eventos Sleep / Hibernate e Resume / Wakeup no Visual Basic.NET

Eu tenho o aplicativo VB.NET que se comunica com algum servidor externo (mantém sessões de login via Intranet), e eu quero ouvir os eventos Sleep / Hibernate de tal forma que quando isso acontecer, eu quero sair de um sistema de sessão existente antes que o computador entre em suspensão, enquanto meu aplicativo permanecerá em execução em segundo plano, mas não fará nada.

E vice-versa, quando o computador é retomado do Hibernate ou Woke up from sleep, quero fazer login imediatamente no servidor.

Como posso pegar esses eventos e executar meu código? Eu acredito que isso se relaciona com a API do Win32 que eu devo usar no VB.

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion