如果 WinExist 使用变量和 RegEx
If WinExist using variable and RegEx
免责声明:是的,我读过另一篇与我类似的 Whosebug 帖子,但是 none 在标题上使用了 RegEx,我找不到解决方案。
我需要打开某个window是这样的:
PlayerName - Game Version 1.2.15
其中 PlayerName 可以是任何东西(例如 aywradwe、john 或 flyingcar82)
我可以从某个函数 getName()
中获取播放器名称,该函数与我的问题及其正常工作无关。
playerName = getName()
然后我尝试使用 playerName
变量和正则表达式打开正确的 window 以匹配任何可能的游戏版本。
SetTitleMatchMode RegEx
playerName = getName()
IfWinExist, playerName - Game Version.*
{
WinActivate
Sleep, 500
WinMaximize
}
但它会尝试使用 "playerName" 而非其值来匹配标题。我也试过 %playerName%
但它也不起作用...
我错过了什么?
这里有两个问题,它们来自使用错误的旧语法。
问题 1:
playerName = getName()
您正在使用已弃用的传统方式将文字文本分配给变量 (=
)。
现在变量 playerName
保存文字文本 "getName()"
.
:=
应用于将表达式的结果分配给变量:
playerName := getName()
问题 2:
使用已弃用的遗留 IfWinActive
命令。
它本身不完全是一个问题,但结合了对遗留语法的错误使用。在遗留声明中,您确实会通过执行 %playerName%
来引用变量,如果您修复了 问题 1.
,那将起作用
但是让我们以正确的方式来做,并使用更新的 WinExist()
函数:
if (WinExist(playerName " - Game Version.*")) ;concatenate the contents of a variable and string
{
WinActivate
Sleep, 500
WinMaximize
}
总的来说,我建议尝试摆脱旧语法。
这是文档中的一个很好的页面,可以帮助您了解不同之处:
https://www.autohotkey.com/docs/Language.htm
免责声明:是的,我读过另一篇与我类似的 Whosebug 帖子,但是 none 在标题上使用了 RegEx,我找不到解决方案。
我需要打开某个window是这样的:
PlayerName - Game Version 1.2.15
其中 PlayerName 可以是任何东西(例如 aywradwe、john 或 flyingcar82)
我可以从某个函数 getName()
中获取播放器名称,该函数与我的问题及其正常工作无关。
playerName = getName()
然后我尝试使用 playerName
变量和正则表达式打开正确的 window 以匹配任何可能的游戏版本。
SetTitleMatchMode RegEx
playerName = getName()
IfWinExist, playerName - Game Version.*
{
WinActivate
Sleep, 500
WinMaximize
}
但它会尝试使用 "playerName" 而非其值来匹配标题。我也试过 %playerName%
但它也不起作用...
我错过了什么?
这里有两个问题,它们来自使用错误的旧语法。
问题 1:
playerName = getName()
您正在使用已弃用的传统方式将文字文本分配给变量 (=
)。
现在变量 playerName
保存文字文本 "getName()"
.
:=
应用于将表达式的结果分配给变量:
playerName := getName()
问题 2:
使用已弃用的遗留 IfWinActive
命令。
它本身不完全是一个问题,但结合了对遗留语法的错误使用。在遗留声明中,您确实会通过执行 %playerName%
来引用变量,如果您修复了 问题 1.
,那将起作用
但是让我们以正确的方式来做,并使用更新的 WinExist()
函数:
if (WinExist(playerName " - Game Version.*")) ;concatenate the contents of a variable and string
{
WinActivate
Sleep, 500
WinMaximize
}
总的来说,我建议尝试摆脱旧语法。
这是文档中的一个很好的页面,可以帮助您了解不同之处:
https://www.autohotkey.com/docs/Language.htm