有一个问题我无法自己解决。无法对焦窗口
我写这个剧本的部分:
If WinExists("Application") then
WinActivate("Application")
...
...
Else
MsMsgBox($MB_OK,"Attention", "openSiebelOrderScreen: Application not found!")
_endAutoIT() // ends the script at all
EndIf
这非常适用于所有Windows 8的计算机只有一个除外。有一台笔记本电脑系统,也运行Windows 8,但我无法说服这台电脑在给定的脚本部分前面获得应用程序窗口。我已经设置了Opt("WinTitleMatchMode", 2)
。
有人有同样的问题,或者可能是一个解决方案吗?
您是否看过WinExsts等的返回码? – Xenobiologist
那么,WinExists不会引发错误。我试图获得WinGetState的窗口状态。在麻烦的笔记本电脑上,结果是数字“16”,因此AutoIT会检测到应用程序窗口在那里,但被最小化。我会尽力使应用程序窗口最大化。希望它会成为焦点。 –
好吧,我现在解决了它,因为我发现,应用程序Windows被AutoIt检测为最小化,但我需要区分WinActivate和WinSetState。这也令我困惑。但现在:“WinActivate( “申请”) \t \t睡眠(500) \t \t本地$窗口句柄= WinWait( “应用程序”, “”,10) \t \t如果BITAND(WinGetState($窗口句柄),16) = 16然后 \t \t \t WinSetState($窗口句柄 “”,@SW_MAXIMIZE) \t \t ENDIF” –