Форум программистов, компьютерный форум, киберфорум
Delphi: WinAPI
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
1 / 1 / 0
Регистрация: 10.01.2014
Сообщений: 63
1
RAD XE3+

Узнать о пренадлежности THandle к Menu\PopupMenu в чужом приложении

20.11.2019, 11:00. Показов 3179. Ответов 6

Author24 — интернет-сервис помощи студентам
Доброго времени, есть некий массив дескприптеров (handles) окон собранный функцией перечисления EnumChildWnd(). Как в нем массиве, можно определить, что определенное окно относится именно к всплывающему меню \ popupmenu. Т.е хэндлы этих менюшек там 100 % есть, т.к. при запуске перечисления по сочетанию клавиш, — меню было в развернутом состоянии.
Подскажите пожалуйста. Может есть какая-то стандартная функция Delphi, вроде isMenuHandle(wnd:hwnd)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.11.2019, 11:00
Ответы с готовыми решениями:

Узнать текст ToolTip-a контрола в чужом приложении ?
Чужое приложение (CorelDRAW), в нём есть до десятка контролов класса - "Edit", причем...

Отлов сообщений в чужом приложении
Доброго. Начал изучать cpp, но так как имхо быстрое изучение - практика то решил чо нить...

Рисование в чужом полноэкранном приложении
Есть игра, запущенная на весь экран. Надо нарисовать некий текст в углу экрана, возможно ли это...

Нажатие на кнопку в чужом приложении
Всем доброго времени суток. Мне нужно нажать на кнопку в чужом приложении и вставить текст в поле....

6
1 / 1 / 0
Регистрация: 10.01.2014
Сообщений: 63
20.11.2019, 19:31  [ТС] 2
Может стили какие-то у окна такого меняются, или еще какая химия.., подскажите а, люди добрые, не только для себя прошу =)
0
231 / 163 / 54
Регистрация: 26.10.2014
Сообщений: 928
21.11.2019, 11:07 3
Xdelphic, предположим что чужое приложение написано на Delphi, это в какой то степени подразумевает, что пункты меню имеют тип TMenuItem. Исходя из этой цепочки предположений могу порекомендовать FindWindowEx() с указанием родительского окна и типа искомого окна.
1
561 / 230 / 88
Регистрация: 11.07.2015
Сообщений: 817
21.11.2019, 11:44 4
Лучший ответ Сообщение было отмечено Xdelphic как решение

Решение

По Handle можно узнать класс
Delphi
1
GetClassName(Wnd: HWnd; ClassName: PChar; MaxCount: Integer): Integer;
Wnd-Handle
ClassName-возвратит класс
MaxCount-кол-во символов
Для PopupMenu класс будет, как #32768.

P.S. К модераторам, тему перенести бы в WINAPI, не соответствует.
1
1 / 1 / 0
Регистрация: 10.01.2014
Сообщений: 63
21.11.2019, 12:18  [ТС] 5
Да, приходила такая идея в голову, но, к сожалению, не все программы присутствующие в системе (ключевое условие) пишутся на Delphi (воистину) D

Добавлено через 2 минуты
Вот это уже решение, большое спасибо! А можно утверждать, что все окна (или хотя-бы большинство) всплывающих меню будут иметь такой класс?

p.s Модераторам: Пардон, за несоответствие темы разделу, не нарочно
0
231 / 163 / 54
Регистрация: 26.10.2014
Сообщений: 928
21.11.2019, 12:22 6
Лучший ответ Сообщение было отмечено Xdelphic как решение

Решение

Цитата Сообщение от Xdelphic Посмотреть сообщение
А можно утверждать, что все окна (или хотя-бы большинство) всплывающих меню будут иметь такой класс?
вот тебе программулина, смотреть тип окон по курсором мышиным
Вложения
Тип файла: rar Project1.rar (378.7 Кб, 5 просмотров)
1
1 / 1 / 0
Регистрация: 10.01.2014
Сообщений: 63
21.11.2019, 12:23  [ТС] 7
Respect!
0
21.11.2019, 12:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2019, 12:23
Помогаю со студенческими работами здесь

Нажатие кнопки в чужом приложении
Здравствуйте. Задался целью программно нажать на кнопку в чужой программе. using System; using...

Управлять мышкой в чужом приложении
Мне надо управлять мышкой в чужом приложении: выставить на определенные координаты и раз в 30мин....

Нажать кнопку в чужом приложении
Помогите нажать кнопку на "левом" приложение !!!!!

Считать нажатие клавиш в чужом приложении C++
Добрый день. Задача состоит в следующем: Считать нажатие клавиши клавиатуры в другом приложении...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru