【问题标题】:Autohotkey Chrome IfWinExist IssueAutohotkey Chrome IfWinExist 问题
【发布时间】:2013-03-09 17:40:51
【问题描述】:

我希望在 Google 语音收件箱中有新消息时定期重复声音。到目前为止,我想出的是让 GV 收件箱始终在 chrome 中打开,并运行以下脚本:

100:
IfWinExist, Google Voice - Inbox (
    SoundPlay, C:\Users\Terry's\Desktop\chimes.wav, wait
Sleep, 1000
Goto 100

如果有新消息,则 GV 标签的标题是“Google Voice - Inbox (1) - Google Chrome”,如果没有新消息,则缺少“(1)”,这就是为什么IfWinExist 的搜索字符串包含一个“(”。

这仅适用于 GV 选项卡在 chrome 中具有注意力的情况(当 chrome 最小化或另一个窗口处于活动状态时,只要 GV 是 chrome 中的选定选项卡,它就会起作用)。但是,如果 chrome 中的另一个选项卡引起了注意,那么它将无法工作,我无法弄清楚如何使其工作。我试过调整 SetTitleMatchMode,但这就是我能想出的全部。任何想法将不胜感激。

【问题讨论】:

    标签: google-chrome autohotkey


    【解决方案1】:

    您是否尝试过 AutoHotKey Windows Spy 来查看如何识别 GV?这就是您需要的(并且很可能是您已经拥有的字符串)然后将 SetTitleMatchMode 设置为 2(在标题中的任何位置查找字符串)。您可以尝试“转义”“左括号”。

    请不要使用睡眠,而是启动一个计时器。我暂时将声音改回我知道有效的声音。完成后,您可以更改回 SoundPlay 并删除 MsgBox。

    伪代码

    #SingleInstance Force
    #installKeybdHook
    #Persistent
    SetTitleMatchMode, 2
    SetTimer, CheckWin, 10000 ; Run CheckWin every 10 seconds.
    
    CheckWin:
    IfWinExist, Google Voice - Inbox (
    {
        MsgBox, Alert
        SoundBeep, 700, 700
    }
    Return
    

    【讨论】:

    • 感谢罗伯特的回复。我曾使用 Windows Spy 来获取窗口标题。我刚刚将您的代码复制到一个新脚本中,但它仍然是同样的问题 - 只有当 GV 选项卡是 chrome 中引起注意的选项卡时,它才有效。如果在 chrome 中选择了任何其他选项卡,IfWinExist 似乎不会选择它。
    • You wrote that it works when the right tab is selected, so the script does work already. always 将其 own Chrome 窗口提供给 GV 怎么样?
    • 是的,那行得通。我觉得应该做一些事情来让它作为选项卡之一工作,但我可能应该接受它作为 IfWinExist 的合理限制。不过,我确实喜欢您使用 SetTimer 的建议 - 它似乎更干净。
    • 要获取打开的标签列表,您可以查看这些讨论...autohotkey.com/board/topic/… AND superuser.com/questions/106890/…
    • @jonsothin,您是否能够获得 Chrome 中所有打开的选项卡的列表来解决您的问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 2014-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多