我们的销售点系统中出现了令人讨厌的弹出窗口,它始终具有相同的窗口标题和窗口消息。我想创建一个脚本,不断监视此窗口弹出,并立即按下输入。
我意识到我可以使用一个循环,每隔500毫秒检查一次窗口,然后如果窗口存在则执行脚本,但我认为必须有一些方法,AHK可以连续监视,而不是在短时间循环。任何过去的经验都非常感谢!谢谢!
附:我查看了#persistent标签,但我认为这并不是我想要的。
补充说明:我继续自己的研究并找到了WinWait,但是当弹出框出现时它无法正常工作!你能让我知道我做错了什么吗?这是我添加到AHK文件中的脚本:
WinWaitActive, Message, Number of Kits,0
{
Send {Enter}
}
Return
以下是Windows Inspector的捕获:
>>>>>>>>>>( Window Title & Class )<<<<<<<<<<<
Message
ahk_class TMessForm
>>>>>>>>>>>>( Mouse Position )<<<<<<<<<<<<<
On Screen: 1219, 438 (less often used)
In Active Window: 765, 7
>>>>>>>>>( Now Under Mouse Cursor )<<<<<<<<
Color: 0xF7F3F7 (Blue=F7 Green=F3 Red=F7)
>>>>>>>>>>( Active Window Position )<<<<<<<<<<
left: 454 top: 431 width: 491 height: 148
>>>>>>>>>>>( Status Bar Text )<<<<<<<<<<
>>>>>>>>>>>( Visible Window Text )<<<<<<<<<<<
&Ok
1
Number of Kits
>>>>>>>>>>>( Hidden Window Text )<<<<<<<<<<<
>>>>( TitleMatchMode=slow Visible Text )<<<<
>>>>( TitleMatchMode=slow Hidden Text )<<<<
我一直在打几个带有计时器的弹出窗口,这个计时器每秒执行一次。如果它不能立即起作用,您只需要更改IfWinExist以匹配您的窗口。
SetTimer, CheckWin, 1000
return
CheckWin:
SetTitleMatchMode, 2
IfWinExist, ahk_class TMessForm, Number of Kits
{
WinClose
; alternatively, write code to activate window
; then send Enter as in your example
TrayTip, Popup-Killer,Window killed,3, 17
return
}
return
顺便说一下,我非常喜欢MCL的Shell Hook想法......
这个怎么样?:
F12::
WINDOWEXPLORER:
WinWaitActive, Windows Explorer,, 0.01
if ErrorLevel {
Goto WINDOWEXPLORER
} else {
; SoundBeep 4500, 30
Return
}