Существует проблема, которую я не могу решить самостоятельно.Невозможно сфокусировать окно
Я написал этот сценарий часть:
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 ("Application") \t \t Sleep (500) \t \t Local $ WinHandle = WinWait ("Application", "", 10) \t \t Если BitAND (WinGetState ($ WinHandle), 16) = 16 Тогда \t \t \t WinSetState ($ WinHandle, "", @SW_MAXIMIZE) \t \t ENDIF» –