Autohotkey 此脚本中的什么导致我的窗口最小化?
这个简单脚本的目标是在特定程序处于焦点时检测空闲时间间隔,然后在空闲时间间隔结束时发送简单的击键。我在4台电脑上运行这个脚本,得到了意想不到的结果。一些PC在脚本运行时最小化窗口。其他电脑按预期运行。每台电脑上的脚本都是相同的 我通过右键单击脚本来调用此脚本,即,不运行已编译的exe版本。在一些客户端上,以管理员身份运行它似乎可以获得更好的结果,在一个客户端上,它没有任何区别,并且最小化了窗口 如上所述,在某些PC机上,脚本按预期工作。没有错误消息,它只是使我的窗口最小化。在我的新手看来,代码中的任何内容都不会导致窗口最小化Autohotkey 此脚本中的什么导致我的窗口最小化?,autohotkey,Autohotkey,这个简单脚本的目标是在特定程序处于焦点时检测空闲时间间隔,然后在空闲时间间隔结束时发送简单的击键。我在4台电脑上运行这个脚本,得到了意想不到的结果。一些PC在脚本运行时最小化窗口。其他电脑按预期运行。每台电脑上的脚本都是相同的 我通过右键单击脚本来调用此脚本,即,不运行已编译的exe版本。在一些客户端上,以管理员身份运行它似乎可以获得更好的结果,在一个客户端上,它没有任何区别,并且最小化了窗口 如上所述,在某些PC机上,脚本按预期工作。没有错误消息,它只是使我的窗口最小化。在我的新手看来,代码中
#Persistent
SetTimer, Timer_check,3000
Timer_check:
if WinActive("ahk_exe gta5.exe")
{
if (A_TimeIdlePhysical > 31301 && WinActive("ahk_exe gta5.exe")) {
Gosub, keepActive
ToolTip, We're currently idle TimeIdle is %A_TimeIdle% and TimeIdlePhysical is %A_TimeIdlePhysical%
sleep 1000
ToolTip
}
if (A_TimeIdle < 31301) {
ToolTip
}
}
return
keepActive: ; keep active sub.
if WinActive("ahk_exe gta5.exe")
{
Send, {` down} ; Press the ` key to keep us active. It holds the key for 0.2 seconds.
Sleep 200
Send, {` up}
}
return```
您正在尝试发送重音/反勾号,这是AHK`中的默认转义字符。要解决此问题,请发送其他字符或转义转义字符,如下所示:
Send, {`` down}
Sleep 200
Send, {`` up}
在没有逃逸的情况下,它只发送上下键。WinKey+down组合最小化了非最大化窗口,这可能与为什么你会看到游戏窗口偶尔最小化有关
编辑:添加了测试脚本
#Persistent
SetTimer, Timer_check, 3000
Timer_check:
If WinActive("ahk_exe gta5.exe") {
If (A_TimeIdlePhysical > 31301 && WinActive("ahk_exe gta5.exe")) {
Send , z
ToolTip, We're currently idle TimeIdle is %A_TimeIdle% and TimeIdlePhysical is %A_TimeIdlePhysical%
sleep 1000
ToolTip
}
If (A_TimeIdle < 31301)
ToolTip
}
Return
我已经做了这个改变,不幸的是,它没有解决这个问题。我还将其更改为Z键,结果相同。该电脑上的窗口最小化。请检查上述脚本是否有效。它删除子例程并发送一个z。未经我修改的修订脚本仍然会导致GTA5.exe窗口将4台PC上运行脚本的时间减少到100%。发布的版本是在第2页,共4页。很明显我遗漏了什么,但我不知道遗漏了什么。我有其他在GTA5上工作的脚本,但我想从头开始做这个,因为我没有找到被动的,而不是激活的。嗯,这很奇怪。除了Send,z之外,脚本中没有任何内容发送任何内容。您确定没有其他脚本正在运行,并且这是脚本中唯一的代码吗?绝对肯定。我不明白的是为什么我从同一个脚本中得到不同的结果。或者为什么它会最小化。我的理论是,AHK抛出了一个错误,但没有输出,而是中断了窗口;不是最小化它,而是将注意力转移到零。是否有一个秘密的调试控制台,我可以看到,如果是这样的情况?