AHK 文档摘录:
如何使热键或热字符串成为特定程序的专用?换句话说,我希望某个键在特定窗口处于活动状态时以外的时间按正常方式运行。
首选方法是 #IfWinActive。例如:
#IfWinActive, ahk_class Notepad ^a::MsgBox You pressed Control-A while Notepad is active.
这可以正常工作,但是只有当记事本获得焦点时,整个其余的 AHK 脚本文件才会有条件地运行。
我该如何结束#IfWinActive
。更好的是,哪里有文档可以解释#
后面跟着的事物的含义。
答案1
直接写法是:
与
#IfWin
指令一样,#If
是位置相关的:它会影响脚本中物理上位于其下方的所有热键和热字符串。#If
并且#IfWin
也是互斥的;也就是说,只有最新的#If
或#IfWin
才会生效。要关闭上下文敏感性,请指定 #If 或任何 #IfWin 指令,但省略所有参数。例如:
#If
因此,本质上放置一个 end-if 就是在先前由开头语句处理的具有条件的#If
块后面放置一个空块。#If
答案2
我找到了更多可以充分解释发生了什么的文档这里。
这种语言不使用 endif。您只需编写#if
不带参数的语句来指定否定情况。
糟糕的语言。;) 但实际上它还是有意义的。从编程的角度来看,这种表达能力较差,但由于脚本是一种配置,99% 的时间您确实希望将绑定拆分为文件中相等的互斥区域。