Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Ожидание окна и действие (Автозаполнение/GUICtrlComboBox_AutoComplete)

Ответить
Настройки темы
Ожидание окна и действие (Автозаполнение/GUICtrlComboBox_AutoComplete)

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: batya85
Дата: 13-02-2011
Описание: поправил шапку
Как пользоваться _GUICtrlComboBox_AutoComplete ?
Нужен простой скрипт который будет постоянно сидеть в памяти (запущен) и ждать появления определенного окна.
При его(окна) появлении, нажать кнопку да
кнопка да
Код: Выделить весь код
>>>> Window <<<<
Title:	Весовой модуль
Class:	#32770
Position:	348, 328
Size:	335, 126
Style:	0x94C801C5
ExStyle:	0x00010101
Handle:	0x0081021C

>>>> Control <<<<
Class:	Button
Instance:	1
ClassnameNN:	Button1
Name:	
Advanced (Class):	[CLASS:Button; INSTANCE:1]
ID:	6
Text:	&Да
Position:	74, 67
Size:	89, 23
ControlClick Coords:	46, 10
Style:	0x50030000
ExStyle:	0x00000004
Handle:	0x00830222

>>>> Mouse <<<<
Position:	471, 427
Cursor ID:	0
Color:	0xD4D0C8

>>>> StatusBar <<<<

>>>> ToolsBar <<<<

>>>> Visible Text <<<<
&Да
&Нет
Создание файла товаров, для весов DIGI.
Для этой операции потребуется некоторое время.
Продолжить?


>>>> Hidden Text <<<<

затем в поле ввода(курсор сам встает в поле после нажатия кнопки Да) ввести символы, перейти tab на следующее поле ввода ввести символы и нажать Enter
(это просто пара логин пароль)

Желательно его перевести в службу или хотя бы exe.

Отправлено: 09:39, 13-02-2011

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Предупреждение за нарушение правил форума, пункт 2.7 и пункт 3.19:

Цитата:
2.7: В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема)...
Подробнее о принципах создания тем читайте в этом документе и Правилах форумов.

3.19: Запрещается... Создавать темы, имеющие неинформативные или состоящие из заглавных букв заголовки (например, "Помогите!", "HELP!", "У меня проблема"). Такие темы будут закрыты или перенесены в Тест-форум. Если вы хотите вернуть перенесенную тему обратно, пока ее не закрыли в Тест-форуме, измените ее заголовок на осмысленный и напишите об этом в теме.
Переименуйте пожалуйста тему (Как переименовать свою тему?).

А также куски кода следует помещать в соответствующий тег (code).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 10:25, 13-02-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


Цитата Creat0R:
Переименуйте пожалуйста тему (Как переименовать свою тему?). »
я бы рад , но нет кнопки "Редактировать"

Отправлено: 11:22, 13-02-2011 | #3


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


Цитата batya85:
Нужен простой скрипт который будет постоянно сидеть в памяти (запущен) и ждать появления определенного окна. »
Попробуйте так:
Код: Выделить весь код
#NoTrayIcon

Global $fClick = True, _
        $sTitle = '[TITLE:Весовой модуль; CLASS:#32770]'

HotKeySet('{Esc}', '_Exit') ;Esc - выход
If @Compiled Then
    _RegRun() ;для записи скрипта в автозагрузку
EndIf
While 1
    If WinExists($sTitle) And BitAND(WinGetState($sTitle), 2) Then
        If $fClick Then
            _Click()
            If Not @error Then
                $fClick = False
            EndIf
        EndIf
    Else
        $fClick = True
    EndIf
    Sleep(100)
WEnd

Func _Exit()
    Exit
EndFunc   ;==>_Exit

Func _RegRun()
    Local $sRegRun = 'HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'

    If RegRead($sRegRun, @ScriptName) = '' Or RegRead($sRegRun, @ScriptName) <> @ScriptFullPath Then
        RegWrite($sRegRun, @ScriptName, 'REG_SZ', @ScriptFullPath)
    EndIf
EndFunc   ;==>_RegRun

Func _Click()
    Local $sLogin = 'digi'

    If Not ControlClick($sTitle, '', '[CLASS:Button; INSTANCE:1]') Then Return SetError(1)
    If WinExists($sTitle) Then Return SetError(1)
    Send($sLogin)
    Sleep(100)
    Send('{TAB}')
    Sleep(100)
    Send($sLogin)
    Sleep(100)
    Send('{ENTER}')
    ;здесь бы проверку сделать, что-то должно измениться.
    Return SetError(0)
EndFunc   ;==>_Click

Последний раз редактировалось madmasles, 13-02-2011 в 19:20. Причина: изменил код

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:13, 13-02-2011 | #4


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


Цитата madmasles:
Попробуйте так: »
большое спасибо. чуть уточню .

1 - окно которое отлавливаем .
2 - кнопка которую жмем.
3 - в оба поля через tab нужно ввести символы digi
4 - окно которое не имеет названия и AutoIT Window Info его не видит
либо зависает. данное окно закрывается(подтверждается вход) нажатием клавиши enter

так вот , после запуска скрипта окно 1 успешно отлавливается и клавиша 2 нажимается,
а вот действие 3 не выполняется (что логично, так как скриптом это не предусмотрено)
можно попросить доработать скрипт с учетом условий ?




Отправлено: 18:06, 13-02-2011 | #5


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


batyaPS,
Я код изменил, но не проверял. (Предыдущий код проверял на собственном нарисованном окне.)
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:22, 13-02-2011 | #6


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


поправка 2 .

действие 3 не выполняется, наверно по тому что окно 4 появляется не сразу , а спустя 5 секунд после нажатия кнопки 2.
нужна задержка 5-6 сек.
как можно получить данные о окне 4 ? если AutoIT Window Info его не видит ?

Отправлено: 09:25, 14-02-2011 | #7


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


ну подскажите, куда правильно поставить SLIP ?

Отправлено: 08:35, 18-02-2011 | #8


Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


batyaPS,
Попробуйте так:
Код: Выделить весь код
;...
If Not ControlClick($sTitle, '', '[CLASS:Button; INSTANCE:1]') Then Return SetError(1)
    Sleep(7000) ;здесь ждем 7 секунд
    If WinExists($sTitle) Then Return SetError(1)
    Send($sLogin)
    Sleep(100)
    Send('{TAB}'
;...
А что-то меняется при удачных действиях?
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:41, 18-02-2011 | #9


Аватара для batyaPS

Ветеран


Сообщения: 968
Благодарности: 61

Профиль | Отправить PM | Цитировать


Цитата madmasles:
А что-то меняется при удачных действиях? »
что Вы имеете в виду ? с задержкой все работает как и хотел .(правда пришлось малость ее увиличить, каждый раз появление окна происходит с разной задержкой в зависимости от загрузки ПК)
не чего не появляется и не каких сообщений нет. появилось окно . тут же нажалась кнопка . выдержка . ввод логин пароль .ентер. все как надо . было бы вообще шикарно если бы можно было избавится от задержки . но как отловить это окно без
заголовка ?

Отправлено: 10:05, 18-02-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Ожидание окна и действие (Автозаполнение/GUICtrlComboBox_AutoComplete)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено




 
Переход