1

我需要运行一个 vb 程序,它将所有数据从不同的生产数据库复制到我们的报告数据库。它将运行至少 5 个小时。所以为了防止机器进入睡眠状态,我如何在指定的时间间隔内将鼠标光标移动 1 像素。根据我的客户公司法律,我不能在计算机电源设置中执行此操作。所以我试图在我的程序本身内做。

我尝试使用 sendkeys,即在指定的时间间隔发送向下箭头,但这对我造成了问题

提前致谢

4

2 回答 2

2

尝试这个

Enum Execution_State
    ES_SYSTEM_REQUIRED = &H1
    ES_DISPLAY_REQUIRED = &H2
    ES_USER_PRESENT = &H4
    ES_CONTINUOUS = &H80000000

End Enum
Declare Sub SetThreadExecutionState Lib "kernel32" (ByRef esFlags As EXECUTION_STATE)
Public Sub DoNotSleep()
    SetThreadExecutionState(esFlags:=Execution_State.ES_SYSTEM_REQUIRED Or Execution_State.ES_DISPLAY_REQUIRED Or Execution_State.ES_CONTINUOUS)
End Sub

http://forums.codeguru.com/showthread.php?492366-How-to-run-a-very-long-SQL-statement挑选

于 2013-10-31T19:57:23.097 回答
1

为什么不直接使用标准 VB6 SysInfo 控件的PowerQuerySuspend 事件

这允许您的程序取消自动睡眠,甚至取消用户发起的睡眠请求(与旧的SetThreadExecutionStateAPI 调用不同)。

于 2013-11-04T20:53:34.593 回答