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

OneNote 2016:数字小键盘切换笔色的AHK脚本失效问题咨询

问题排查与修正方案

关于NumLock的疑问

  • 脚本里的Numpad1这类按键,对应NumLock开启状态下的数字小键盘数字键;如果NumLock关闭,小键盘按键会切换为方向/功能键(比如Numpad1对应NumpadEnd),此时脚本不会触发。你可以保持NumLock开启,或者把脚本里的按键名替换为NumLock关闭时对应的名称(比如NumpadEnd::)。

脚本无效的原因与修正

你的代码误用了AutoHotkey v1的命令格式,不符合v2语法规范,导致脚本无法正常执行。修正后的代码如下:

#Requires AutoHotkey v2.0

SetTitleMatchMode(2)
SetKeyDelay(75)
#If WinActive("OneNote")
Numpad1::SendEvent("!d{down}{right 4}{enter}") ; 切换为黑色画笔
Numpad2::SendEvent("!d{down}{right 5}{enter}") ; 切换为红色画笔
Numpad3::SendEvent("!d{down}{right 6}{enter}") ; 切换为蓝色画笔
Numpad4::SendEvent("!d{down}{right 7}{enter}") ; 切换为绿色画笔
Numpad5::SendEvent("!d{down}{right 8}{enter}") ; 切换为蓝色荧光笔
Numpad6::SendEvent("!d{down}{right 9}{enter}") ; 切换为红色荧光笔
Numpad7::SendEvent("!d{down}{right 10}{enter}") ; 修正:原代码与Numpad6重复,调整为对应蓝色荧光笔的正确位置
#If

关键修正点:

  1. v2语法规范:v2中所有配置命令都是函数,必须用括号传参,比如SetTitleMatchMode(2)(v1格式为SetTitleMatchMode, 2),SendEvent也需要用括号包裹发送内容。
  2. 字符串格式修正:WinActive("OneNote")直接使用正常双引号,移除HTML转义的"。
  3. 重复逻辑修正:原代码中Numpad7与Numpad6的发送内容完全重复,根据注释调整了{right}的次数,确保对应正确的颜色选项。

额外排查建议

  • 确保OneNote窗口处于前台激活状态,脚本仅在OneNote窗口激活时生效。
  • 如果修正后仍无效,可适当增大SetKeyDelay的数值(比如改为100),避免按键发送过快导致OneNote未响应。
  • 手动执行Alt+d打开OneNote的绘图工具菜单,确认方向键的按压次数是否对应正确的颜色选项——不同版本的OneNote菜单选项顺序可能有变化,需根据实际情况调整{right}的次数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:38:32