I have VB.NET app that communicates with some external server (maintains login sessions via Intranet), and I want to listen for Sleep/Hibernate events such that when it happens,
If your application is using a window and can read the message loop you can simply subscribe to Microsoft.Win32.SystemEvents.PowerModeChanged like:
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
Else, if you are using a service for example, you have to create a hidden form like described here (scroll down to 'Example 2')
try below:
To restart the pc
System.Diagnostics.Process.Start("Shutdown", " -r -t 00")
To shutdown the pc
System.Diagnostics.Process.Start("Shutdown", " -s -t 00")