Что нового

[Автоматизация] Не получается открыть пункт меню в программе

Fly01

Новичок
Сообщения
9
Репутация
0
Здравствуйте, есть окно программы со множеством элементов интерфейса, в этой программе надо открыть нужное меню, пробовал через WinMenuSelectItem, но надежда была слабой, через Send + горячая клавиша не реагирует, раздаётся звук в винде, словно окно программы не в фокусе (короткий звонкий звук), пробовал ControlClick поставить курсор куда-нибудь внутри программы или сделать просто клик по какой-нибудь части окна, но с открытием меню не помогло... Даже если я сам нажимаю на клаве эти сочетания клавиш, то происходит то же самое, единственное, после чего начинает работать, это когда я сам мышкой тыкаю в любую область окна, может сможете подсказать в чём может быть дело и как исправить?
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Fly01 [?]
единственное, после чего начинает работать, это когда я сам мышкой тыкаю в любую область окна
Значит нужно активировать окно
Код:
WinActivate("Заголовок окна")
 
Автор
F

Fly01

Новичок
Сообщения
9
Репутация
0
Пробовал, не помогло... Так же проверку делал на активное окно, проверка вернула, что окно активно, но это меню всё равно не выбирается... Даже совсем забыл про деталь одну, на самом деле один раз открылся пункт меню, а потом начала такая хрень происходить... Могут ли мешать другие открытые окна других программ? Например программы, у которых статус поверх всех окон
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Fly01
Что за программа? Скриншот с выпавшим меню можно увидеть?
Активируется ли меню при нажатии F10 или при нажатии-отпускании Alt ?
Какой класс окна у выпадающего меню с пунктами?
 
Автор
F

Fly01

Новичок
Сообщения
9
Репутация
0
Программа - бот для Lineage2 (на сервере бот разрешён администрацией) - http://joxi.ru/n2YzRVGS5O3GA6
При нажатии Alt или F10 визуально выделяется пункт меню, но клавишами уже не управляется, управляется только в случае, если я сам мышкой сделаю окно активным (напоминаю, что Autoit показывает, что окно активное, просто я не знаю, как правильно назвать то, что происходит в данном случае :smile: )
[CLASS:Afx:00400000:8:00010003:00000000:00000000; INSTANCE:5]

Может быть конфликт с чем-то?
 
Автор
F

Fly01

Новичок
Сообщения
9
Репутация
0
Максимум, что вышло - выделить первый пункт http://joxi.ru/82Q7pNyfdvjZrd
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Fly01
Добавьте в начало скрипта
Код:
Opt("SendKeyDelay", 30)
Opt("SendKeyDownDelay", 30)
Поиграйтесь с задержками (увеличьте с 30 до 50 или до 100).
 
Автор
F

Fly01

Новичок
Сообщения
9
Репутация
0
Без результата :(


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

Хотя знаете, добавил ещё несколько произвольных кликов по окну и ваш код заработал
Код:
; пункт меню "Setup - Option"
WinActivate("L2Walker")
Send("{F10}{RIGHT 2}{DOWN}{ENTER}")


Вот мой всё равно никак, почему-то... В принципе тему можно считать решённой, спасибо
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Fly01
Попробуйте ещё так
Код:
SendKeepActive("L2Walker")
Send("{F10}{RIGHT 2}{DOWN}{ENTER}")
SendKeepActive("")
 
Верх