AutoHotKey热键修饰符重叠触发问题及Return语法必要性咨询
问题1解答
第一版脚本按下左Ctrl+W输出<>属于AutoHotKey的正常表现。
AutoHotKey的热键执行逻辑为从上到下顺序执行,直到碰到Return、Exit语句或下一个热键定义标签才会终止。第一版脚本中第一个热键<^w::的执行逻辑后没有加Return,触发该热键执行完SendInput <后,会继续向下穿透执行后续代码,也就顺带运行了下方的SendInput >,最终输出两个字符。
问题2解答
只有单一行写完的热键定义可以省略Return,AutoHotKey会默认在这类单行热键末尾隐含添加终止标识,不会向下穿透执行,示例如下:
; 单行热键无需加Return <^w::SendInput < <^<+w::SendInput >
只要热键的执行逻辑是换行编写的,不管逻辑只有1行还是多行,也不管脚本里有没有其他热键,都必须在当前热键逻辑的末尾添加Return终止执行,否则就会出现穿透执行的异常问题。
内容的提问来源于stack exchange,提问作者Gras Double
相关产品推荐
相关产品推荐

