Что нового

[Окна, Диалоги] Как заставить AutoIt кликнуть на элемент меню окна

WasonAl

Новичок
Сообщения
31
Репутация
1
Ай, не бейте меня - сегодня написал первый скрипт на AutoIt - всё нравится, пока всё получается и окна открываются закрываются и на кнопки кликать получается, только вот не могу кликнуть на элемент меню открытого мной окна. :laugh:
Чувствую, что CotrolClick для этого нужен, но в ControlId не знаю что писать: тупыми мозгами не понимаю я:[PROPERTY1:Value1; PROPERTY2:Value2]
Замечание: Если значение controlID не использует указанный выше формат, то полагается, что числами задается величина идентификатора (control ID) (if numeric), а текстом - ClassnameNN/text управляющего элемента. Несмотря на то, что формат дескриптора длинней, для устранения возможных ошибок и путаницы рекомендуется в будущем использовать именно его. :whistle:
---
Меню верхнего уровня называется Таблицы, подменю Заявки. Как кликнуть? :'(
 

NoMad73rus

Продвинутый
Сообщения
124
Репутация
80
Для работы с меню обычно можно использовать Alt+клавиша - это гораздо удобнее.
Окно какой программы имеется ввиду? Если от программа от правильного разработчика то должно уметь с клавиатуры управляться.
Пример для FF меню файл -> новая вкладка Send("{alt}фв")
 
Автор
W

WasonAl

Новичок
Сообщения
31
Репутация
1
NoMad73rus сказал(а):
Для работы с меню обычно можно использовать Alt+клавиша - это гораздо удобнее.
Окно какой программы имеется ввиду? Если от программа от правильного разработчика то должно уметь с клавиатуры.
Нет, в Quik-е всем элементам меню горячих клавиш не назначено, иначе я бы Send и сделал. А разве AutoIt не позволяет обращаться к элементам меню? Есть даже раздел Controls, но я не нашёл понятных примеров.
 

NoMad73rus

Продвинутый
Сообщения
124
Репутация
80
А вариант открыть меню ControlClick-ом, а потом Send({DOWN 2}{ENTER})?
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Попробуй
Код:
WinMenuSelectItem

Может и получится.
Пример с Блокнотом:
Код:
Run("notepad.exe") ;запуск Блокнота
WinWait("[Class:Notepad]") ;ожидание окна Блокнота по имени класса
WinMenuSelectItem("[Class:Notepad]", "", "&Справка", "&О программе") ;нажать пункт меню Справка - О программе

Имено &Справка и &О программе (подсмотрел в сканере окон):
+&Файл
•Созд&ать Ctrl+N
•&Открыть... Ctrl+O
•&Сохранить Ctrl+S
•Сохранить &как...
•<Пустая строка>
•Пара&метры страницы...
•&Печать... Ctrl+P
•<Пустая строка>
•В&ыход
+&Правка
•&Отменить Ctrl+Z
•<Пустая строка>
•&Вырезать Ctrl+X
•&Копировать Ctrl+C
•Вст&авить Ctrl+V
•&Удалить Del
•<Пустая строка>
•&Найти... Ctrl+F
•Найти &далее F3
•&Заменить... Ctrl+H
•Перей&ти... Ctrl+G
•<Пустая строка>
•Выделить в&се Ctrl+A
•Врем&я и дата F5
+Фор&мат
•&Перенос по словам
•&Шрифт...
+&Вид
•&Строка состояния
+&Справка
•&Вызов справки
•<Пустая строка>
•&О программе
 
Автор
W

WasonAl

Новичок
Сообщения
31
Репутация
1
NoMad73rus сказал(а):
А вариант открыть меню ControlClick-ом, а потом Send({DOWN 2}{ENTER})?
А на будущее - как открыть меню ControlClick-ом?
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
361
WasonAl сказал(а):
Меню верхнего уровня называется Таблицы, подменю Заявки. Как кликнуть? :'(
В квике Таблицы-Заявки нет вроде?
Может Торговля-Заявки и т.д. ?
Тогда:

Код:
WinMenuSelectItem("[CLASS:InfoClass]", "", "Торговл&я", "&Заявки")


Код:
[CLASS:InfoClass]
- универсально для любого квика

Используем для определения пунктов меню InqSoft Window Scanner

Некоторые подобным способом запускают\останавливают вывод по DDE, т.к. горячие клавиши работают весьма своеобразно, у меня, например, клавишей DDE не останавливается :blink:
 
Верх