首页 > 解决方案 > AutoHotKey IfWinExists 不适用于正则表达式

问题描述

我有一个类似这样的窗口标题: ComInstr - Q4NATIONAL-11.21(1).pdf - Google Chrome

我想使用 IfWinExist 让我知道该窗口是否存在。我这样做:

SetTitleMatchMode Regex

IfWinExist i)\..{3,4} - Google Chrome
{   
  Msgbox Here
}
return

窗口的标题会改变,但它总是包含一个点和 3 或 4 个字符(扩展名),然后是 - Google Chrome。

这不起作用,我不知道为什么。有什么建议吗?

标签: regexautohotkey

解决方案


您需要用 .转义逗号`,
否则,您对IfWinExist(docs)命令的参数如下:

  • WinTitle=i)\..{3
  • WinText=4} - Google Chrome

所以,一定要转义逗号:
IfWinExist i)\..{3`,4} - Google Chrome


但实际上,您不应该使用旧版 AHK。
IfWinExist是一个已弃用的遗留命令,不应再使用。
WinExist()(docs)与现代if ()(docs ) 一起使用。

在现代 AHK 中,您无需担心遗留语法会给您带来的麻烦,因为您在其中明确指定了字符串""
if (WinExist("i)\..{3,4} - Google Chrome"))


推荐阅读