我需要运行一个 vb 程序,它将所有数据从不同的生产数据库复制到我们的报告数据库。它将运行至少 5 个小时。所以为了防止机器进入睡眠状态,我如何在指定的时间间隔内将鼠标光标移动 1 像素。根据我的客户公司法律,我不能在计算机电源设置中执行此操作。所以我试图在我的程序本身内做。
我尝试使用 sendkeys,即在指定的时间间隔发送向下箭头,但这对我造成了问题
提前致谢
尝试这个
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挑选
为什么不直接使用标准 VB6 SysInfo 控件的PowerQuerySuspend 事件?
这允许您的程序取消自动睡眠,甚至取消用户发起的睡眠请求(与旧的SetThreadExecutionState
API 调用不同)。