需求: 我自身有一个 v2 的 ahk 脚本, 主要是实现 按键映射, 比如#a >!w !f capslock & a 等等之类的.
现在有一个新的需求: 当按下 f 的时候 如果同时 1.
要求:
实现的脚本内容如下
#Requires AutoHotkey v2.0 #SingleInstance force InstallKeybdHook KeyHistory SetNumLockState "AlwaysOff" SetCapsLockState "AlwaysOff" DetectHiddenWindows true ~LWin:: Send "{Blind}{vkE8}" ~Alt:: Send "{Blind}{vkE8}" f & u:: { Send "+{Home}" Send "^{c}" } f & i:: { Send "+{Up}" } f & o:: { Send "+{End}" Send "^{c}" } f & k:: { send "+{Down}" } f & j:: { Send "+{Left}" } f & l:: { Send "+{Right}" } f & n:: { Send '^+{Left}' } f & m:: { Send '^+{Right}' }
上面这段脚本存在的问题:会使得的 f 按键失去原本的功能.
因此我尝试了~,波浪号 ~ 允许按键的默认功能继续执行 ~f & i:: { Send "+{Up}" }
这样虽然 能够保证 f 的功能正常, 但是在 按下 f 和 i 实现向上选中行的时候会多输出一个 f. 因为~f & i 会使得 f 按键本身的功能透传给窗口
而且在中文输入 "方法"这个汉字的时候 会出现输入字符错乱的清空. 具体的原因是 因为 定义了 f & n 这个 hotkey 在快速输入 fang 这个词组的时候触发了热键 f&n. 这个可以从 keyhistory 中看到
4 03F u 0.03 F5 53 01F d 2.83 s AHK v2 组合键行为 - Google Chrome 53 01F u 0.16 s 48 023 d 0.03 h 49 017 d 0.03 i 46 021 h d 0.05 f ----------------------->这里也触发了 hotkey 48 023 u 0.02 h 49 017 u 0.00 i 41 01E d 0.05 a 4E 031 h d 0.06 n -------------------------->看到这里触发了 hotkey A2 01D i d 0.00 LControl A0 02A i d 0.00 LShift 25 14B i d 0.00 Left 25 14B i u 0.00 Left A2 01D i u 0.00 LControl A0 02A i u 0.00 LShift 41 01E u 0.06 a 4E 031 s u 0.03 n 47 022 # d 0.01 g 47 022 u 0.09 g 74 03F d 8.66 F5 D:\program\AutoHotkey\ahk_scripts\demo.ahk - AutoHotkey v2.0.19
综上而言 :
![]() | 1 Dogergo 216 天前 建议直接问 AI ,我就是 autoHotKey ,做剪贴板自动替换,后来发现自己写的不是很好用,直接让 Ai 用 python 写了个工具出来,可以自由配置规则,并决定要不要开启 |
2 chenqh 216 天前 这种我也不会啊. |