Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Autohotkey 如果WinExist使用变量和正则表达式_Autohotkey - Fatal编程技术网

Autohotkey 如果WinExist使用变量和正则表达式

Autohotkey 如果WinExist使用变量和正则表达式,autohotkey,Autohotkey,免责声明:是的,我读过另一篇与我类似的StackOverflow文章,但没有一篇文章在标题上使用RegEx,我也找不到解决方案 我需要打开一个如下的窗口: PlayerName-游戏版本1.2.15 PlayerName可以是任何东西(如Ayrawe、john或flyingcar82) 我可以从某个函数getName()中获取玩家名称,该函数与我的问题及其正常工作无关 playerName=getName() 然后我尝试通过使用playerName变量和正则表达式来打开正确的窗口,以匹配游戏的任

免责声明:是的,我读过另一篇与我类似的StackOverflow文章,但没有一篇文章在标题上使用RegEx,我也找不到解决方案

我需要打开一个如下的窗口:

PlayerName-游戏版本1.2.15

PlayerName可以是任何东西(如Ayrawe、john或flyingcar82)

我可以从某个函数
getName()
中获取玩家名称,该函数与我的问题及其正常工作无关

playerName=getName()

然后我尝试通过使用
playerName
变量和正则表达式来打开正确的窗口,以匹配游戏的任何可能版本

 SetTitleMatchMode RegEx
 playerName = getName()
 IfWinExist, playerName - Game Version.*
 {
 WinActivate  
 Sleep, 500
 WinMaximize
 }
但它试图用“playerName”来匹配标题,而不是它的价值。我还尝试了
%playerName%
,但它也不起作用


我错过了什么

这里有两个问题,它们来自于错误地使用遗留语法

问题1:
playerName=getName()

您使用的是不推荐的传统方式,将文字文本分配给变量()。
现在变量
playerName
保存文本
“getName()”

应用于将表达式的结果赋给变量:
playerName:=getName()

问题2:
不推荐使用的旧命令的用法。
它本身并不是一个问题,但它与错误使用遗留语法相结合。在遗留语句中,您确实可以通过执行
%playerName%
来引用变量,如果您修复了问题1,这将起作用。
但是,让我们用正确的方式,使用更新的功能:

if (WinExist(playerName " - Game Version.*")) ;concatenate the contents of a variable and string
{
    WinActivate  
    Sleep, 500
    WinMaximize
}
总的来说,我建议尝试摆脱遗留语法。
这里有一个很好的文档页面,可以帮助您了解这些差异: