Ловим контекстное меню и отправляем в него клик.

Gafask

Участник
Автор темы
137
13
Добрый день.🧐
Подскажите пожалуйста как я могу отравить клик в контекстное меню чужой программы при появлении его .
Или
Получить true/вызвать cout когда оно появилось .
🤛ПРИМЕР ВЫЗОВА🤜
1. Я нажимаю правую кнопочку или Shift + F10.

2. Появляется контекстное меню где разные кнопочки .
Пример контекстного меню:
изображение_2021-12-09_173525.png



Вопрос: Каким образом я могу отследить появление этого контекстного меню или нажать к примеру там любой клавишу .
👏👏👏Спасибо за внимание. 👏👏👏👏
 
Последнее редактирование:
  • Ха-ха
Реакции: kin4stat
Решение
Я не понимаю почему ты за 2 месяца не разобрался еще?
Одним из вариантов получить хендл контексного меню ты можешь через https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getwindow с параметром GW_ENABLEDPOPUP. Получить hWnd для функции выше ты можешь через https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-findwindowa
Отправлять выбор меню как один из вариантов ты можешь через https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendmessage (с сообщениями конкретко какие взаимодействуют с контекстным окном разберись уж сам)
Каким образом я могу отследитьпоявлениеэтого контекстного меню
...

Gafask

Участник
Автор темы
137
13
Правую кнопку пробовал нажимать?
Ты не понял суть моего вопроса .

Я думаю это сработает но это не стабильный вариант ( может пойматся что-то другое ) .
 
Последнее редактирование:

Gafask

Участник
Автор темы
137
13
Так у контестного меню нет хэндла, для винды это не отдельное окно.
Спасибо за инфу , а как тогда отправить в контекстное меню клик при его появлении ?

Тема изменена . 🤓
 
Последнее редактирование:

Gafask

Участник
Автор темы
137
13
Я вообще не понимаю зачем тебе это, ерундой занимаешься. Если хочешь выполнить какой-то пункт из контекстного меню, так и скажи.
Нельзя отследить появление контекстного меню, в этом просто нет смысла. С контекстным меню должен взаимодействовать пользователь, а не программа.
Да мне нужно выбрать/выполнить пунк который находится в этом меню чужой программы . Программа для работы и поэтому не могу выкладывать конкретику . Просто делаю софт для себя , что-бы меньше работать на удаленке ) . Выбрать я могу пункт через эмуляцию клавиш - альт + ф10 вызываем конктекст меню , page Down для того что-бы выбрать первый вариант в этом меню и в конце enter но это не дает гарантию что контектст меню не залагает и просто не появится ( такое уже было ) . Так как у меня программа выполняет действия выбора по это методу выше и это занимает 40 мс. и иногда повторно надо выполнять код а это иногда путает (99 успех , 1 мимо ) .

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