Что нового

Выбрать пункт меню из стороннего приложения при помощи мыши

Ежевика

Новичок
Сообщения
10
Репутация
0
Прошу прощения, если я делаю что-то не так.
Очень нужно решить этот вопрос, но я абсолютно не понимаю даже с чего начать.
Итак:
есть приложение, в котором есть набор кнопок.
Нужно выбрать кнопку "Привет", затем еще пару пунктов.
Выбирать их можно только мышкой - приложение не понимает команд.
Помогите, пожалуйста.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: Выбрать пункт меня из стороннего приложения при помощи мыши

Ежевика [?]
я абсолютно не понимаю даже с чего начать.
ИМХО, Вам надо прочитать свое сообщение и подумать, найдется ли в мире хоть один человек, который смог бы Вам помочь при таком описании проблемы.
 
Автор
Ежевика

Ежевика

Новичок
Сообщения
10
Репутация
0
Re: Выбрать пункт меня из стороннего приложения при помощи мыши

На другом форуме, на котором рекомендовали зайти сюда, поняли.
Попробую расшифровать.
Есть приложение, которое имеет интерфейс.
Интерфейс содержит набор кнопок.
Кнопки реагируют только на нажатие мышью и не реагируют на хоткеи.
Интерфейс приложения графический, при этом, может масштабироваться и изменять свое положение по желанию пользователя.
Мне нужно автоматизировать определенную последовательно нажатия кнопок мышью, для автоматизации конкретной функции этого приложения.
Пример:
Кнопка "Привет" вызывает окно, в котором введены какие-то параметры, на этом окне отображается кнопка "Далее"
Надо нажать кнопку "Далее", тогда открывается следующее окно с набором параметров.
И так далее.
Значения, которые отображаются на кнопках мне известны.
Нужно сделать так, чтобы автоматизация была устойчивой к изменению положения окна приложения.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: Выбрать пункт меня из стороннего приложения при помощи мыши

Ежевика [?]
Нужно выбрать кнопку "Привет", затем еще пару пунктов
Речь про пункты меню? Тогда можно пробовать через WinMenuSelectItem.

Выбирать их можно только мышкой - приложение не понимает команд.
Во-первых, что это за такое приложение?
А во-вторых, что именно испробовано прежде чем сделать такой вывод?
 
Автор
Ежевика

Ежевика

Новичок
Сообщения
10
Репутация
0
Re: Выбрать пункт меня из стороннего приложения при помощи мыши

1. Самописное приложение для выполнения рабочих функций.
Работодатель решил автоматизировать его максимально.
Проблема в том, что код закомпилирован, исходников нет, а писать заново нет ресурсов.
2. Испробовано, например, переходить по пунктам меня при помощи табуляции (безуспешно), задавать команды и так далее.
Запускать приложение через ВАТ-файл с параметрами.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Re: Выбрать пункт меня из стороннего приложения при помощи мыши

Надо попробовать через ControlClick.
 

edyapd

Осваивающий
Сообщения
380
Репутация
30
Re: Выбрать пункт меня из стороннего приложения при помощи мыши

Ежевика, есть такое приложение "AutoIt Window Info". Если у вас нет то скачайте.
Выбирете в нём вкладку "Summary", потом ухватитесь мышкой за прицел наведите его на ваши кнопки и отпустите.
То, что будет во вкладке скопируйте и выложите здесь. Было бы не плохо иметь скрин вашего приложения. Чтобы хотя бы визуально представлять, что там у вас.
 
Автор
Ежевика

Ежевика

Новичок
Сообщения
10
Репутация
0
Скриншот приложить не могу - меня могут за него не похвалить. :'(

>>>> Window <<<<
Class: AppGUI
Position: 1798, 267
Size: 118, 468
Style: 0x940A0000
ExStyle: 0x00080088
Handle: 0x0002066C

>>>> Control <<<<
Class: Static
Instance: 10
ClassnameNN: Static10
Name:
Advanced (Class): [CLASS:Static; INSTANCE:10]
ID: 12
Text: Привет
Position: 9, 183
Size: 100, 13
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Ежевика [?]
Скриншот приложить не могу - меня могут за него не похвалить.
Интересно, что же там такого... :smile:
Попробуйте так:
Код:
ControlClick("[CLASS:AppGUI]", "", "Static10")
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Ежевика,
Попробуйте сделать примерно так.
Код:
;~ Заголовок окна поменяйте на свой
$hWnd = WinGetHandle('[Title:Заголовок окна;Class:AppGUI]')
;~ или
;~ $hWnd = WinWait('[Title:Заголовок окна;Class:AppGUI]', '', 3)
If Not $hWnd Then Exit 1
ControlClick($hWnd, '', '[CLASS:Static; INSTANCE:10]')
 
Автор
Ежевика

Ежевика

Новичок
Сообщения
10
Репутация
0
alex33, можно сказать, что это коммерческая тайна. А у нас только недавно был инцидент, потому сейчас надо осторожнее.

В скриптах выдает ошибку: Call to nonexistent function
Я полагаю, что мне надо подключить какой-то модуль?

Прошу прощения за свою глупость, у меня поначалу всегда так.
Потом будет получше.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Ежевика
:D Поставьте это https://www.autoitscript.com/site/autoit/downloads/ Download Autoit
 
Автор
Ежевика

Ежевика

Новичок
Сообщения
10
Репутация
0
inververs, у меня все плохо не до такой степени.
Это было сделано до создания поста.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Ежевика, покажите скриншот в чем вы пишете скрипт, и эту ошибку. :smile:
 
Автор
Ежевика

Ежевика

Новичок
Сообщения
10
Репутация
0
Вот скрин сразу с ошибкой.
 

Вложения

  • Screen.JPG
    Screen.JPG
    107.5 КБ · Просмотры: 18

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Забавно, вы такая первая на форуме. Но скорее всего это сказывается усталость :smile: Вы перепутали 2 языка, вы сейчас на форуме по autoit, но пишете скрипт на AutoHotkey, это не одно и тоже. Так что вам любо сюда http://www.autohotkey.com/board/forum/56-autohotkey/, либо создавайте AutoIt V3 script и вместо блокнота редактируйте его в SciTe
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Ты в Notepad++ пишешь... А надо в SciTE писать...
 
Автор
Ежевика

Ежевика

Новичок
Сообщения
10
Репутация
0
:stars:
Это уже не усталось...
Использую SciTE-Lite.
Компилируется без ошибок, но ничего не происходит при выполнении exe-файла.
 

Вложения

  • Screen.JPG
    Screen.JPG
    51.8 КБ · Просмотры: 19

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Можно не компилировать, а выбрать Tools/go или нажимать F5.
Проверьте что у кнопки Привет, после перезапуска приложения, ID всегда остается Static10
Может вам подойдет
Код:
MouseClick
, в справке есть примеры как пользоваться, координаты смотрите в AutoIt v3 Window Info.
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
inververs [?]
Может вам подойдет
Или тот же самый ControlClick, только ещё координаты внутри элемента задать...


Добавлено:
Сообщение автоматически объединено:

inververs [?]
Можно не компилировать, а выбрать Tools/go или нажимать F5.
А ещё можно двойным кликом из проводника или через контекстное меню Run Script.
 
Верх