| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > Добавить пункт в контекстное меню |
| Автор: Cetus 18.4.2005, 12:24 |
| Как добавить пункт в контекстное меню проводника? (вызывается при клике правой кнопкой на файле) желательно чтобы пункт в меню находился снизу либо был отделен сплошной линией. |
| Автор: Cetus 19.4.2005, 22:15 |
| знаю способ через реестр: HKEY_CLASSES_ROOT\*\shellex\мой_пункт\command значение по умолчанию := 'c:\exefile.exe' но тогда пункт добавляется в верху списка, мне же хотелось бы чтобы мой пункт меню находился внизу списка для этого надо писать *.dll и подключать через CLSID. кто нибудь практиковал? |
| Автор: Cetus 24.4.2005, 09:23 |
| Кто нибудь! откликнитесь! |
| Автор: Alex 24.4.2005, 16:33 |
| Перенесенно из раздела Delphi |
| Автор: Rouse_ 24.4.2005, 17:27 | ||
Это очень легко, причем ты удивишся но именно такой пример идет в поставке с Дельфи. Находиться он тут: {delphi_path}\Demos\ActiveX\ShellExt\contmenu.dpr |
| Автор: Cetus 26.4.2005, 06:40 |
| Rouse_ спасибо! |
| Автор: Marsianin 20.11.2005, 10:24 | ||
| Спасибо за примеры, за которыми, как оказалось далеко ходить не надо. НО! Всё же есть 2 вопроса: 1. Как повесить своё меню на любой файл в системе - понятно. Но как сделать так, чтобы оно вызывалось и когда несколько файлов выделены ? 2. Как воткнуть в меню свою иконку ? Пробовал сделать через
|
| Автор: newalex 20.11.2005, 22:55 |
| В нете есть статьи "РУководство полного идиота". Без обид только... Я сам когда разбирался, очень обиделся на название это. Так вот... там кода немеренно и на все вопросы найдешь ответы там. Единственный минус - на сях. По поводу иконки... грузи из ресурса. Тип должен быть HBitmap. |
| Автор: Marsianin 21.11.2005, 02:52 |
| Да не нужны статьи, я более-менее разобрался в том, что уже есть в Delphi. Вот только с иконками не пойму. LoadBitmap(hInstance,'0') как раз загружает иконку из ресурса и выдаёт hBitMap, но видимо, я куда-то не туда всё это засунул, может грузить надо иконку где-то в специальном месте - не работает вообщем |
| Автор: newalex 21.11.2005, 23:36 |
| С ресурсом всё правильно делаешь? Директиву $R в начале не забыл? Может с индексами чего напутал, в смысле возле какого пункта иконку показывать? В LoadBitmap(hInstance,'0') вместо 0 пиши имя того, что у тебя в файле ресурсе написано (имя иконки). |
| Автор: Marsianin 22.11.2005, 00:49 |
| Да нет, $R не забыл. Посмотрел же свой dll через Resource Hacker. Иконка там есть в ресурсах. Называется: Bitmap - 1 - 0 Я так понял, что "0" и есть её название, которое нужно указать в LoadBitmap. И ещё, где в DLL нужно делать загрузку bitmap из ресурса ? Непосредственно перед вставкой картинки в меню или где при инициализации DLL ? С индексами...только дошло, что наверное накосячил. Т.к. сначала добавил свой пункт меню а потом на тот же индекс картинку, а оно, поидее, сместится уже должно. А чужому пункту картинка не добавится ? |
| Автор: newalex 22.11.2005, 11:16 |
| Вот тебе пример... немного доделаный стандартный пример из делфы. Внимательно изучи все файлы в архивчике. По себе знаю, что лучше пример перед глазами иметь. Делов на пять минут, но если первый раз, то муторно как-то это делать. Нормальных FAQ в нете нету (кроме тех статей, что я посоветовал, почитай на досуге всё-таки). Ничего... как диплом сделаю, напишу свой FAQ на эту тему... Слушай... напиши мне на мыло, а я тебе отвечу письмом с примером, а то чё-то у меня глючит тут всё... |
| Автор: newalex 22.11.2005, 17:33 |
| Кинул всё, что мог |