1 (изменено: f_user, 2013-11-26 16:27:21)

Тема: AHK: Control клик по выплывающему меню

Здравствуйте, пытаюсь научиться использовать control'ы.
Задача простая, нажать на определенный текст в выплывающем меню. Перепробовал разные способы, но ввиду отсутствия опыта ничего не получилось. Пожалуйста помогите.

Control, Choose, 1, TComboBox2, ahk_class TfmMain

Работает замечательно.


Control, ChooseString, TComboBox2, ahk_class TfmMain, UOu-I
Control, ShowDropDown, UOu-I, TComboBox2, ahk_class TfmMain
ControlClick,TComboBox2,ahk_class TfmMain, UOu-I,
ControlClick, TComboBox2, UOu-I,,,, NA
Control, HideDropDown, , TComboBox2, ahk_class TfmMain
controlsend, Tcombox2,, ahk_class TfmMain, UOu-I
controlclick, UOu-I, ahk_class TfmMain, UOu-I

не работают.

http://s11.postimg.org/vynco5lgj/awi.png

2

Re: AHK: Control клик по выплывающему меню

Возможно так:


Control, ChooseString, 2460 > Пуск, TComboBox2, ahk_class TfmMain

подойдёт если в начале строк пунктов не может быть совпадений.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3 (изменено: f_user, 2013-11-26 18:26:42)

Re: AHK: Control клик по выплывающему меню

С выбором  "пуск" работает. Но если вписать название нужного процесса с pid или без, перестает работать.

Control, ChooseString, 9352 > UOu-I, TComboBox2, ahk_class TfmMain

4

Re: AHK: Control клик по выплывающему меню

Возможно есть пробелы в конце строки.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5 (изменено: f_user, 2013-11-26 18:48:26)

Re: AHK: Control клик по выплывающему меню

Видимо есть пробел, если выбирать через pid все работает. Спасибо.
Осталось только научиться узнавать pid по заголовку окна..

6

Re: AHK: Control клик по выплывающему меню

Возможно проще и надёжнее обрабатывать весь список ComboBox.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7 (изменено: f_user, 2013-11-26 20:34:23)

Re: AHK: Control клик по выплывающему меню

А можно пример, или линк где делается подобная обработка ?
Появилась не приятная ошибка. Пока хотя бы раз не будет активирован список, скрипт не работает.
Пробовал решить проблему добавлением быстрым Show/hideDropDown но проблема осталась.

control, ShowDropDown,,TComboBox2, ahk_class TfmMain 
control, HideDropDown,,TComboBox2, ahk_class TfmMain
WinGet, CPID, PID, UOu-I,
Control, ChooseString, %CPID%, TComboBox2, ahk_class TfmMain 

Пример с определением заголовка окна

WinID := WinExist("A")
    WinGetTitle, CTitle, ahk_id %WinID%
        RegExMatch(CTitle,"UOu-([^()]+)",RegEx)
    WinSetTitle, ahk_id %WinID%,, %RegEx%

WinGet, CPID, PID, %RegEx%,
Control, ChooseString, %CPID%, TComboBox2, ahk_class TfmMain

8

Re: AHK: Control клик по выплывающему меню

Появилась не приятная ошибка. Пока хотя бы раз не будет активирован список, скрипт не работает.

Не сталкивался.

А можно пример, или линк где делается подобная обработка ?

Сначала я подумал что входной параметр это заранее известный заголовок. А тут активное окно и WinSetTitle... Уточните тз.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9 (изменено: f_user, 2013-11-26 21:10:38)

Re: AHK: Control клик по выплывающему меню

Если описывать сжато, то можно разделить на несколько пунктов.
1. Скрипт на запуск и авторизацию в клиенте.
2. Определение и изменение заголовка она клиента.
3. Привязка в другой программе по заголовку окна клиента.
В процессе выполнения этих пунктов изучаю ahk.

Предполагаю, что список подгружает информацию только после его активации. Можно ли посредством контра заставить его подгрузить новые данные ?
Вот скрипт

run E:\games\UltimaOnline\client.exe

IfWinNotActive, Ultima Online
    WinActivate, Ultima Online
    WinWaitActive, Ultima Online

SendInput, {Click 510, 390}
    SendInput, {Backspace 10}
    SendInput, login
SendInput, {Click 510, 425}
    SendInput, password

SendInput, {Click 625,485, 0}
    loop
    {
        var := WaitPixelColor(0xEFEFEF,625,485,1000)
            If ( var = 0 )
                SendInput, {Click 625,485}
            Else If ( var = 1 )
                goto WinID
            Else If ( var = 2 )
                goto WinID
    }

WinID:
WinID := WinExist("A")
    WinGetTitle, CTitle, ahk_id %WinID%
        RegExMatch(CTitle,"UOu-([^()]+)",RegEx)
    WinSetTitle, ahk_id %WinID%,, %RegEx%

WinGet, CPID, PID, %RegEx%,
Control, ChooseString, %CPID%, TComboBox2, ahk_class TfmMain 

10

Re: AHK: Control клик по выплывающему меню

Понял как: имея PID, надо выбрать строку в ComboBox которая начинается с этого PID?
Так как:

если выбирать через pid все работает. Спасибо.

то единственная проблема:

Появилась не приятная ошибка. Пока хотя бы раз не будет активирован список, скрипт не работает.

?

А так выбирается 2 пункт?:

Control, Choose, 2, TComboBox2, ahk_class TfmMain
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK: Control клик по выплывающему меню

Все совершенно верно. Я уже пробовал активировать combobox через Choose результата не принесло.
Только что попробовал через ControlClick, вывело пустой список.
http://s22.postimg.org/tzksyv5y9/image.png

12

Re: AHK: Control клик по выплывающему меню

На обум, могу предложить:

WinSet, Redraw
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13

Re: AHK: Control клик по выплывающему меню

Опробовал в сочетании

WinSet, Redraw,, ahk_class TfmMain
Control, Choose, 1, TComboBox2, ahk_class TfmMain

Результата не дало.

14 (изменено: serzh82saratov, 2013-11-27 07:04:11)

Re: AHK: Control клик по выплывающему меню

Приложите файл программы, чтобы не гадать.


ControlFocus пробывали?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

15

Re: AHK: Control клик по выплывающему меню

Проверил только что, результата не дало.
uopilot 2.34

16

Re: AHK: Control клик по выплывающему меню

Ну тогда просто кликать по активному:

SendInput, {Click 226, 95}

Странно там всё, с этим контролом.

А вы для чего используете эту программу, если не секрет?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

17

Re: AHK: Control клик по выплывающему меню

Для написания скриптов в игре с возможностью прикрепления большого количества клиентов. Пилот понимает последнее сообщения в игре к примеру, и некоторую другую информация. Если я правильно понимаю, что бы реализовать такое в ahk то нужно работать с памятью, но у меня нет ни малейшего представления как это делается.

Через sendinput все работает, спасибо.