Autohotkey traytip窗口何时变为活动状态?
我只想在窗口激活时显示工具提示 为什么这样不行?它会在加载脚本后立即启动工具提示Autohotkey traytip窗口何时变为活动状态?,autohotkey,Autohotkey,我只想在窗口激活时显示工具提示 为什么这样不行?它会在加载脚本后立即启动工具提示 #IfWinActive, Untitled - Notepad { TrayTip, Notepad Has Focus, test Tab:: MsgBox Window Found return } 选项卡检测按预期工作,仅当窗口处于活动状态时才会显示消息框。根据,#IfWinActive创建上下文敏感热键和热字符串。更准确地说,这就是使用#IfWin…: 无论何时按下热键或键入热字符串,A
#IfWinActive, Untitled - Notepad
{
TrayTip, Notepad Has Focus, test
Tab::
MsgBox Window Found
return
}
选项卡检测按预期工作,仅当窗口处于活动状态时才会显示消息框。根据,#IfWinActive
创建上下文敏感热键和热字符串。更准确地说,这就是使用#IfWin…
:无论何时按下热键或键入热字符串,AHK都会查找相应的
#IfWin…
定义(如果可用)并对其进行计算(例如,“记事本是否处于活动状态?”)。如果为true,将执行热键/热字符串标签,否则将发送本机密钥。查看此过程,您将认识到在
#IfWin…
语句下面执行任意代码是行不通的;当指定的窗口变为活动/存在等时,AHK不会触发事件,而是在触发相应的热键/热字符串时检查条件。因此,您必须编写等待记事本、显示通知并可能重复此过程的代码:
#Persistent
SetTimer, WaitForNotepad, -1
Exit
WaitForNotepad:
WinWaitActive, ahk_class Notepad
TrayTip, Warning, Notepad is active!
WinWaitNotActive
SetTimer, WaitForNotepad, -1
return
请注意,在某种循环中,如果没有SetTimer
,这也可以工作。但是,当您等待的时间可能很长时,使用计时器是合理的,因为它们实际上允许其他线程在其间运行。您还注意到我使用了窗口类(
ahk_class
)而不是窗口标题,因为它通常更可靠