如何在AutoHotkey中使用变量定义按键按下与抬起操作?
AutoHotkey v2 变量控制按键按下/抬起的正确写法
你的代码失效是因为没在Send命令里正确解析变量,AHK v2的字符串处理和Send语法和v1有差异,以下是两种可行写法:
写法1:字符串拼接
test(key){ Send "{" key " down}" ; 把变量直接拼接到按键指令字符串中 Sleep 500 Send "{" key " up}" } test("w") ; 必须传带引号的字符串,直接写test(w)会把w当成未定义变量,肯定无效
写法2:变量插值
v2支持在双引号字符串里用%变量名%做插值,这种写法更直观:
test(key){ Send "{%key% down}" Sleep 500 Send "{%key% up}" } test("w")
额外注意
- 用
SendInput替代Send可以获得更稳定的按键模拟效果,用法完全一致 - 你贴的官方文档示例
InStr(MyVar, "fox")是正确的v2字符串查找语法,和当前按键控制的问题无关
内容的提问来源于stack exchange,提问作者kite




