获取睡眠/休眠和恢复在Visual Basic.NET /唤醒事件(Get Sleep/Hibern

2019-07-30 12:25发布

我有VB.NET的应用程序,与一些外部服务器(保留通过Intranet登录会话)进行通信,并且我要听的睡眠/休眠,这样当它发生,我想之前计算机进入睡眠注销现有会话系统事件,而我的应用程序将继续在后台运行,但不会做任何事情。

反之亦然,当计算机从休眠恢复或从睡眠中醒来的时候,我想立刻登录到服务器。

我怎样才能抓住这些事件和执行我的代码? 我相信这涉及我应该在VB中使用的Win32 API。

谢谢。

Answer 1:

如果您的应用程序使用一个窗口,可以读取消息循环,你可以简单地订阅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”)



Answer 2:

试试下面:

重新启动电脑

System.Diagnostics.Process.Start("Shutdown", " -r -t 00")

要关闭电脑

System.Diagnostics.Process.Start("Shutdown", " -s -t 00")


文章来源: Get Sleep/Hibernate and Resume/Wakeup events in Visual Basic.NET