![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Системное контекстное меню [D7, Win2k, WinXP]
yaJohn © (2006-12-08 11:27:00)Есть TPopupMenu. Нужно заполнить его элементами из системного контекстного меню для определённого файла или папки. Особо интересны подпункты SendTo и New. Желательно, конечно, с иконками, но сие уже вторично. И само собой нужно уметь выполнять соответствующие операции.
В JCL есть модуль JclShell, а в нем функция DisplayContextMenu, которая вызывает нужное меню, но мне нужно не показать, а заполнить уже имеющееся TMenu.
Можно переформулировать задачу иначе:
Как заполнить TMenu элементами из имеющегося HMENU с сохранением функциональности?
Rouse_ (2006-12-08 12:59:00) [1]Только измени пример .
Вот эта строку
ShellContextMenu := CreatePopupMenu;
замени на
ShellContextMenu := MySuperMenu.Handle;
Rouse_ (2006-12-08 12:56:00) [2]http://rouse.drkb.ru/winapi.php#syspopup
yaJohn (2006-12-08 12:40:00) [3]Дело в том, что я разрабатываю как раз расширение оболочки, так что тут сам бог велел :)
> через IContextMenu(2) лучше
Через IContextMenu я могу заполнить HMENU, это работает. А вот как выпотрошить HMENU?
clickmaker (2006-12-08 12:25:00) [4]
> Это проще, чем связываться с оболочкой и ее меню
не думаю. через IContextMenu(2) лучше
DVM (2006-12-08 12:19:00) [5]Тема уже здесь всплывала - можно ведь самому просканить нужные разделы реестра. Эксплорер их оттуда и берет. Это проще, чем связываться с оболочкой и ее меню.