一旦电源设置closures,我怎样唤醒我的Windows显示器?

所以我的Vista机器设置为在10分钟后closures显示器。 (注意:机器没有挂起,或hibernate)

我有一个.Net应用程序正在运行,需要在指定的时间“唤醒”系统。 作为一个人,你只需要移动鼠标或按下一个键。 我如何以编程方式执行此操作?

我试过了:编程设置游标; 使用“SendKeys”; 甚至可以用CreateWaitableTimer来解锁(即使它没有挂起),希望这会触发一些东西。

理想情况下在C#代码会很好,但正确的Win API就足够了。

提前谢谢了。

您应该能够通过发送系统命令消息来控制监视器电源,如下所示。 请注意,这是在XP上测试,Vista可能已经改变了一些东西,所以你需要测试它,让我们知道。

这个代码是在VB中,但你可以看到它使用的Win32 API调用。 您需要将窗口句柄传递给该函数,以便您的代码将需要创建一个窗口来处理该消息(只需将其传递给默认的窗口处理函数)。

Const SC_MONITORPOWER As Integer = &HF170 Const WM_SYSCOMMAND As Short = &H112S Private Function SendMessage( ByVal Handle As Int32, ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As Int32) As Int32 End Function Sub MonStandBy(hWnd as Int32) SendMessage(hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, 1) End Sub Sub MonOff(hWnd as Int32) SendMessage(hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, 2) End Sub Sub MonOn(hWnd as Int32) SendMessage(hWnd, WM_SYSCOMMAND, SC_MONITORPOWER, -1) End Sub