【发布时间】:2023-01-27 10:21:22
【问题描述】:
我在 Excel Visual Basic 模块中有代码,可以防止笔记本电脑/计算机屏幕锁定。
我在模块中调用的鼠标事件非常麻烦。
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTFaha_LEFTUP, 0, 0, 0, 0
是否有较少的侵入性事件会阻止屏幕锁定?
这正在更广泛的自动化中使用,因此解决方案必须是 VBA。
完整代码:
Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As
Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Const MOUSEEVENTF_LEFTDOWN = &H2
Public Const MOUSEEVENTF_LEFTUP = &H4
Dim TimerActive As Boolean
Sub KeepWindowsActive()
TimerActive = True
'move cursor and click
SetCursorPos 200, 200 'x and y position
mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
mouse_event MOUSEEVENTFaha_LEFTUP, 0, 0, 0, 0
Application.OnTime Now + TimeValue("00:03:00"), "KeepWindowsActive"
End Sub
【问题讨论】: