F1::
MsgBox, This should give 1`nA_TitleMatchMode=%A_TitleMatchMode%
SetTitleMatchMode, 2
MsgBox, This should give 2`nA_TitleMatchMode=%A_TitleMatchMode%
SetTitleMatchMode, regex
MsgBox, This should give regex`nA_TitleMatchMode=%A_TitleMatchMode%
return
F2::
MsgBox, This should give 1`nA_TitleMatchMode=%A_TitleMatchMode%
return
要被说服,请运行上述并连续按
F2, F1, F2。
每次按键都会启动一个新线程,因此SetTitleMatchMode会重新初始化为1.
SetTitleMatchMode是多余的。您的代码应如下所示(我没有测试):
#NOEnv
#Warn
#SingleInstance Force
SetTitleMatchMode Regex
!A::
if WinActive("Foo ahk_exe foo.exe")
MsgBox, Foo
if WinActive("Bar$ ahk_exe bar.exe")
MsgBox, Bar
我不明白你的脚本,但答案是你不必将它放在顶部。它将影响所有以下命令,直到
return
.概念证明脚本:
要被说服,请运行上述并连续按 F2, F1, F2。
每次按键都会启动一个新线程,因此
SetTitleMatchMode
会重新初始化为1
.SetTitleMatchMode
是多余的。您的代码应如下所示(我没有测试):