有一個問題我無法自己解決。無法對焦窗口
我寫這個劇本的部分:
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」 –