Vb 6.0移动鼠标光标以防止睡眠

时间:2013-10-31 19:54:39

标签: vb6 mousemove

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

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

提前致谢

2 个答案:

答案 0 :(得分: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

中挑选

答案 1 :(得分:1)

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

这允许您的程序取消自动休眠甚至是用户启动的睡眠请求(与较早的SetThreadExecutionState API调用不同)。