You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Word VBA模拟键盘按键以防止机器进入闲置锁屏状态

用Word VBA模拟键盘按键防止机器锁屏

你的现有代码仅在Word文档内插入文本,属于应用内部操作,系统不会将其判定为用户交互行为,因此无法阻止锁屏。要实现目标,需调用Windows API模拟真实键盘按键,让系统识别为用户正在活动。

解决方案代码

先在VBA编辑器中右键点击项目→插入→模块,添加一个标准模块,再粘贴以下代码:

' 声明Windows API函数及常量
Private Declare PtrSafe Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As LongPtr)
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_SCROLL = &H91 ' Scroll Lock键的虚拟键码

Dim nextRunTime As Date

' 启动防锁屏任务
Sub StartAntiLock()
    ' 设置下一次执行时间(当前时间+60秒)
    nextRunTime = Now + TimeValue("00:01:00")
    ' 立即执行一次按键模拟
    SimulateKeyPress
    ' 调度下一次执行
    Application.OnTime nextRunTime, "StartAntiLock"
End Sub

' 停止防锁屏任务
Sub StopAntiLock()
    On Error Resume Next ' 避免任务未运行时触发错误
    Application.OnTime nextRunTime, "StartAntiLock", , False
    On Error GoTo 0
End Sub

' 模拟按键操作(选用Scroll Lock,无输入干扰)
Private Sub SimulateKeyPress()
    ' 按下Scroll Lock键
    keybd_event VK_SCROLL, 0, 0, 0
    ' 松开Scroll Lock键
    keybd_event VK_SCROLL, 0, KEYEVENTF_KEYUP, 0
End Sub

代码说明

  • API调用:keybd_event用于模拟键盘的按下/松开动作,VK_SCROLL是Scroll Lock键的虚拟键码,选这个键是因为它不会产生输入内容,也不会干扰当前操作。
  • StartAntiLock:初始化定时任务,每60秒执行一次按键模拟,同时自动调度下一次执行。
  • StopAntiLock:用于终止定时任务,避免关闭Word后任务仍在后台运行。
  • SimulateKeyPress:完成一次完整的按键交互,系统会将其识别为用户活动,从而阻止锁屏。

使用方法

  1. 打开Word,按Alt+F11打开VBA编辑器。
  2. 插入标准模块并粘贴代码。
  3. 运行StartAntiLock子程序(可在编辑器中按F5,或给它添加自定义工具栏按钮)。
  4. 需要停止时,运行StopAntiLock子程序即可。

注意事项

  • 若使用32位Word,需将代码中的PtrSafe改为Ptr,LongPtr改为Long。
  • 可根据需求调整定时间隔,比如将TimeValue("00:01:00")改为00:00:30即每30秒执行一次。
  • 也可替换为其他虚拟键(如VK_SHIFT),但Scroll Lock是最无干扰的选择。

内容的提问来源于stack exchange,提问作者Nosail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 03:40:10