Нужно нажать кнопку Ok на всех дочерних окнах (это по сути сообщение об ошибке, на ней только одна кнопка Ok, заголовок и текст)
Я попробовал
Желательно, кончено, чтобы было логирование - когда окно было закрыто.
С autoIt вообще не знаком (только вчера увидел) - готов заплатить, чтобы сэкономить время для текущей задачи.
Привет всем!
Не дождался ответа.
Слепил такой скрипт. Вроде работает. Может, кому пригодится.
Узнал класс окна через AutoIT v3 Window Info, чтобы Enter жать не во всех окнах подряд (у меня много окон с одинаковым названием и сообщение об ошибке, которое нужно закрыть - имеет такое же название, как и нужное окно).
Я попробовал
- $aList = WinList()
- For $i = 1 To $aList[0][0]
- ControlClick($aList[$i][1], "", "[class:Button;text:ОК]")
- ControlClick($aList[$i][1], "", "[class:Button;text:ОК]")
- Next
Желательно, кончено, чтобы было логирование - когда окно было закрыто.
С autoIt вообще не знаком (только вчера увидел) - готов заплатить, чтобы сэкономить время для текущей задачи.
Сообщение автоматически объединено:
Привет всем!
Не дождался ответа.
Слепил такой скрипт. Вроде работает. Может, кому пригодится.
Узнал класс окна через AutoIT v3 Window Info, чтобы Enter жать не во всех окнах подряд (у меня много окон с одинаковым названием и сообщение об ошибке, которое нужно закрыть - имеет такое же название, как и нужное окно).
Код:
#include <WinAPI.au3>
#include <File.au3>
DirCreate("C:\Logs")
While 1
$aList = WinList()
For $i = 1 To $aList[0][0]
; Если заголовок окна начинается на ОКНО!, И класс окна TMessageForm, то активируем это окно и жмем Enter
If StringInStr ($aList[$i][0],"ОКНО!") > 0 And _WinAPI_GetClassName($aList[$i][1]) = "TMessageForm" Then
WinActivate ($aList[$i][1])
Send ("{ENTER}")
_FileWriteLog("C:\Logs\Enter.log", "нажата Enter для окна: " & $aList[$i][0])
EndIf
Next
Sleep (10000)
WEnd
Последнее редактирование: