以下脚本可以使用control-l
从任何地方打开Firefox的位置/“真棒”栏,除非使用Acrobat / Adobe阅读器。这是因为Acrobat中的control-l
全屏显示。它有效,但它很难看,并使用嵌套的#ifWinNotActive
。
#IfWinNotActive, ahk_class MozillaWindowClass
#IfWinNotActive, ahk_class ahk_class AcrobatSDIWindow
^l::
WinActivate, ahk_class MozillaWindowClass
Send, ^l
return
#IfWinNotActive
#IfWinNotActive
以下代码替换不起作用。 Autohotkey不会抱怨错误,但忽略了!WinActive条件,而且似乎陷入无限循环。有什么想法吗? (我在结束括号之前和之后尝试了return语句。)
^l::
if (!WinActive(ahk_class,MozillaWindowClass)) and (!WinActive(ahk_class,AcrobatSDIWindow)) {
WinActivate, ahk_class MozillaWindowClass
Send, ^l
}
return
答案 0 :(得分:7)
使用WinActive功能,您需要ahk_class MozillaWindowClass
周围的引号
而且你不需要逗号。可以通过添加hook $
来解决无限循环。
$^l::
if (!WinActive("ahk_class MozillaWindowClass"))
and (!WinActive("ahk_class AcrobatSDIWindow"))
{
WinActivate, ahk_class MozillaWindowClass
Send, ^l
} else
Send, ^l
Return
但是,只有在使用过时的AutoHotkey basic时才需要这样写。
除非你有正当理由不升级到AutoHotkey_L(这不太可能)
您可以使用#If directive完成第一个示例中的尝试。
#If !WinActive("ahk_class CalcFrame") && !WinActive("ahk_class Notepad")
^l::
Run, notepad
Winwait, ahk_class Notepad
Send, test
Return
f1::traytip,, test
#If
在此示例中 Ctrl + L 和 F1 仅在编码时起作用
计算器和/或记事本当前未激活,
否则他们就像通常那样行事。
对于不熟悉AutoHotkey简写的人,!
表示不是。