Что нового

Получение информации из контекстных меню приложений

Andrey_A

Продвинутый
Сообщения
319
Репутация
68
Подскажите пожалуйста как получить информацию из контекстного меню приложений не созданных в Autoit. Известен хэндл $hContextMenu, но как получить что-то или отправить команду? Ни в справке, ни на сайте, ни в сети ничего не нашёл.
Интересует получение:
1. Количества пунктов
2. Массив названий всех пунктов
3. Индекс пункта с галочкой, кнопочкой рядом с пунктом
4. Индекс активного пункта
+ Интересует
5. Запуск нужного индекса
6. Изменение названия пункта
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Andrey_A [?]
Известен хэндл $hContextMenu
Хэндл контекстного меню получают так
Код:
$hMenu = _SendMessage(WinGetHandle("[class:#32768]"), 0x01E1, 0, 0) ;MN_GETHMENU
Затем используют его в функциях GuiMenu.au3

Пример (запустите скрипт, вызовите любое контекстное меню)
Код:
#include <GuiMenu.au3>
#include <SendMessage.au3>

$PopUp = WinWait("[class:#32768]")
$hMenu = _SendMessage(WinGetHandle("[class:#32768]"), 0x01E1, 0, 0) ;MN_GETHMENU

ConsoleWrite("Количество пунктов: " & _GUICtrlMenu_GetItemCount($hMenu) & @LF)
 
Автор
A

Andrey_A

Продвинутый
Сообщения
319
Репутация
68
InnI, спасибо! Прыгал вокруг этой библиотеки, но что-то не получалось. Сейчас выяснилось, что этого $hMenuContext=WinGetHandle('[CLASS:#32768]') было маловато))) Теперь хэндл правильный и информация потекла!!!
 
Верх