如何AutoHotKey持续监视特定弹出窗口并在弹出窗口时运行脚本

问题描述 投票:1回答:2

我们的销售点系统中出现了令人讨厌的弹出窗口,它始终具有相同的窗口标题和窗口消息。我想创建一个脚本,不断监视此窗口弹出,并立即按下输入。

我意识到我可以使用一个循环,每隔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 )<<<<
monitoring autohotkey persistent
2个回答
1
投票

我一直在打几个带有计时器的弹出窗口,这个计时器每秒执行一次。如果它不能立即起作用,您只需要更改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想法......


0
投票

这个怎么样?:

F12:: 
  WINDOWEXPLORER: 
    WinWaitActive, Windows Explorer,, 0.01 
    if ErrorLevel { 
      Goto WINDOWEXPLORER 
    } else { 
      ; SoundBeep 4500, 30
      Return 
    }
© www.soinside.com 2019 - 2024. All rights reserved.