Есть ли в AutoIt ответная реакция?

Установил AutoIt воспользовался

написал такой код в файле exempl1.au3

$hWnd   =   WinGetHandle("[CLASS:Notepad++]")
WinActivate($hWnd)
Send("a")

Всё прекрасно работает, но если я закрою Notepad++ То при выполнении программа не выдаст мне ошибки, говорящей что то типо этого : "[CLASS:Notepad++] не найден".

И вот именно факт того что нету "обратной связи" меня расстраивает.


Также есть ли язык (питон СИ-шарп) программирования с модулями для автоматизации ??


заменил Send("a") на ControlSend("a")

введите сюда описание изображения


Ответы (1 шт):

Автор решения: timob256

спасибо Joker-y .

В общем разобрался как работает ControlSend()

Вот пример :

 ; Запуск блокнота только так вызывается
Run('C:\kononov\Notepad++\notepad++.exe')

; Ожидание 5 секунд до появление окна блокнота  и проверка 
$hWnd = WinWait("[CLASS:Notepad++]", "", 5)
If Not $hWnd Then
    MsgBox(4096, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')
    Exit
EndIf

;ControlClick(handle, button1);
; проверка открития 
$hWnd1  =   WinGetHandle($hWnd, "[CLASS:ToolbarWindow32; INSTANCE:1]")
If Not $hWnd1 Then
    MsgBox(4096, 'Сообщение', 'Строчка окна не найдена,WinGetHandle, завершаем работу скрипта')
    Exit
EndIf

; нажатие клавиши  и проверка , нажатие клавиши "новый "
$hWnd3  =ControlClick($hWnd, "", "[CLASS:ToolbarWindow32]", "Left", 1,11, 12)
If Not $hWnd3 Then
    MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlClick, завершаем работу скрипта')
    Exit
EndIf

; нажатие клавиши и проверка , нажатие на рабочей поверхности
$hWnd4  =ControlClick($hWnd, "", "[CLASS:SysTabControl32]", "Left", 1,550, 50)
If Not $hWnd4 Then
    MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlClick, завершаем работу скрипта')
    Exit
EndIf
; Устанавливает текст в элемент, заменяя текущий
;ControlSetText($hWnd, "", "Tab", "[CLASS:SysTabControl32]", "Новый текст уставленный в элемент Edit")
; Высылает строку символов в элемент увы строуон не реализует 
;$hWnd5 = ControlSend("[CLASS:Notepad++]", "Tab", "[CLASS:SysTabControl32]", "This is some text")
$hWnd5  = ControlSend($hWnd, "", '', 'It works :-) yes')


;$hWnd5 =ControlSend($hWnd, "Tab", "[CLASS:SysTabControl32]", " new 1 ")
If Not $hWnd5 Then
    MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlSend, завершаем работу скрипта')
    Exit
EndIf
Sleep(500)
;$hWnd6 = ControlSend($hWnd, "", '', '{Alt}{F4}')
$hWnd6  = ControlSend($hWnd, "", '', '^!s', 0)
If Not $hWnd6 Then
    MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlSend, завершаем работу скрипта')
    Exit
EndIf
Sleep(500)

$n = 4
;Send('+{TAB ' & $n & '}') ; нажимает четрые  таба (лементы управления)
$hWnd7  = ControlSend($hWnd, "", '', '+{TAB ' & $n & '}', 0)
If Not $hWnd7 Then
    MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlSend, завершаем работу скрипта')
    Exit
EndIf
Sleep(500)

$hWnd8  = ControlSend($hWnd, "", '', '{ENTER}', 0)
If Not $hWnd8 Then
    MsgBox(4096, 'Сообщение', 'Строчка не отработала, ControlSend, завершаем работу скрипта')
    Exit
EndIf

Sleep(5000)
;send('^!s') ; соразмерно контрол альт р

; Закрывает блокнот. ( пока открытым держим )
WinClose($hWnd)

Также замечу что у AvtoIt-a очень хорошая документация.

→ Ссылка