Что нового

[Окна, Диалоги] Простой вопрос про два окна

MyNick

Новичок
Сообщения
2
Репутация
0
Привет.
Помогите исправить код.
У меня был код, который прекрасно работал, но в новой версии программы не работает, код такой:

Код:
#include <TrayConstants.au3>
#include <Array.au3>

$l="login"
$p="password"

Run("programm.exe")
Local $w = "[CLASS:#32770; TITLE:Идентификация пользователя]"
TraySetState($TRAY_ICONSTATE_SHOW) ; Show the tray menu.

$hWnd = WinWait($w, "", 10)
WinActivate($hWnd)
Send("{TAB}")
Send("{Enter}")
WinActivate($hWnd)
Send($l)
Send("{TAB}")
Send($p)
Send("{Enter}")


Алгоритм работы весьма прост - после запуска программы "programm.exe" появляется первое окно в котором нужно просто нажать "Enter" и затем появиться второе окно в котором нужно ввести логин/пароль и нажать tab и enter.
Проблема со вторым окном - после его появления ничего не происходит.
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Проверьте с помощью AutoIt Window Info, что второе окно "programm.exe" имеет [CLASS:#32770; TITLE:Идентификация пользователя].
Если нет - поменяйте в коде на то, что покажет AutoIt Window Info.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
MyNick [?]
после запуска программы "programm.exe" появляется первое окно в котором нужно просто нажать "Enter" и затем появиться второе окно в котором
запустить программу через Run, получить дескриптор процесса и получить окна процесса
Код:
_WinAPI_EnumProcessWindows

выделить хэндлы окон и посылать нужные нажатия клавиш в окно по его хэндлу
 
Автор
M

MyNick

Новичок
Сообщения
2
Репутация
0
hedji, спасибо за ответ, первое окно - [CLASS:#32770; TITLE:Установка сетевого соединения], второе - [CLASS:#32770; TITLE:Идентификация пользователя]

joiner, спасибо за быстрый ответ Hahdle первого окна - 0x000705F8, второго - 0x000805F8
 
Верх