![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Cetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 18.4.2004 Репутация: нет Всего: 1 |
Как добавить пункт в контекстное меню проводника?
(вызывается при клике правой кнопкой на файле) желательно чтобы пункт в меню находился снизу либо был отделен сплошной линией. --------------------
Легко внести изменения в код.Трудно сделать это корректно. |
|||
|
||||
| Cetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 18.4.2004 Репутация: нет Всего: 1 |
знаю способ через реестр:
HKEY_CLASSES_ROOT\*\shellex\мой_пункт\command значение по умолчанию := 'c:\exefile.exe' но тогда пункт добавляется в верху списка, мне же хотелось бы чтобы мой пункт меню находился внизу списка для этого надо писать *.dll и подключать через CLSID. кто нибудь практиковал? --------------------
Легко внести изменения в код.Трудно сделать это корректно. |
|||
|
||||
| Cetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 18.4.2004 Репутация: нет Всего: 1 |
Кто нибудь! откликнитесь!
--------------------
Легко внести изменения в код.Трудно сделать это корректно. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 6 Всего: 162 |
Перенесенно из раздела Delphi
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Rouse_ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 469 Регистрация: 23.4.2005 Репутация: 18 Всего: 29 |
Это очень легко, причем ты удивишся но именно такой пример идет в поставке с Дельфи. Находиться он тут: {delphi_path}\Demos\ActiveX\ShellExt\contmenu.dpr Это сообщение отредактировал(а) Girder - 24.4.2005, 17:50 |
|||
|
||||
| Cetus |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 141 Регистрация: 18.4.2004 Репутация: нет Всего: 1 |
Rouse_ спасибо!
--------------------
Легко внести изменения в код.Трудно сделать это корректно. |
|||
|
||||
| Marsianin |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 48 Регистрация: 24.11.2004 Репутация: нет Всего: нет |
Спасибо за примеры, за которыми, как оказалось далеко ходить не надо.
НО! Всё же есть 2 вопроса: 1. Как повесить своё меню на любой файл в системе - понятно. Но как сделать так, чтобы оно вызывалось и когда несколько файлов выделены ? 2. Как воткнуть в меню свою иконку ? Пробовал сделать через
|
|||
|
||||
| newalex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 15.11.2005 Репутация: нет Всего: нет |
В нете есть статьи "РУководство полного идиота". Без обид только... Я сам когда разбирался, очень обиделся на название это. Так вот... там кода немеренно и на все вопросы найдешь ответы там. Единственный минус - на сях.
По поводу иконки... грузи из ресурса. Тип должен быть HBitmap. |
|||
|
||||
| Marsianin |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 48 Регистрация: 24.11.2004 Репутация: нет Всего: нет |
Да не нужны статьи, я более-менее разобрался в том, что уже есть в Delphi.
Вот только с иконками не пойму. LoadBitmap(hInstance,'0') как раз загружает иконку из ресурса и выдаёт hBitMap, но видимо, я куда-то не туда всё это засунул, может грузить надо иконку где-то в специальном месте - не работает вообщем |
|||
|
||||
| newalex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 15.11.2005 Репутация: нет Всего: нет |
С ресурсом всё правильно делаешь? Директиву $R в начале не забыл? Может с индексами чего напутал, в смысле возле какого пункта иконку показывать?
В LoadBitmap(hInstance,'0') вместо 0 пиши имя того, что у тебя в файле ресурсе написано (имя иконки). |
|||
|
||||
| Marsianin |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 48 Регистрация: 24.11.2004 Репутация: нет Всего: нет |
Да нет, $R не забыл. Посмотрел же свой dll через Resource Hacker. Иконка там есть в ресурсах.
Называется: Bitmap - 1 - 0 Я так понял, что "0" и есть её название, которое нужно указать в LoadBitmap. И ещё, где в DLL нужно делать загрузку bitmap из ресурса ? Непосредственно перед вставкой картинки в меню или где при инициализации DLL ? С индексами...только дошло, что наверное накосячил. Т.к. сначала добавил свой пункт меню а потом на тот же индекс картинку, а оно, поидее, сместится уже должно. А чужому пункту картинка не добавится ? |
|||
|
||||
| newalex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 15.11.2005 Репутация: нет Всего: нет |
Вот тебе пример... немного доделаный стандартный пример из делфы. Внимательно изучи все файлы в архивчике. По себе знаю, что лучше пример перед глазами иметь. Делов на пять минут, но если первый раз, то муторно как-то это делать. Нормальных FAQ в нете нету (кроме тех статей, что я посоветовал, почитай на досуге всё-таки).
Ничего... как диплом сделаю, напишу свой FAQ на эту тему... Слушай... напиши мне на мыло, а я тебе отвечу письмом с примером, а то чё-то у меня глючит тут всё... Это сообщение отредактировал(а) newalex - 22.11.2005, 11:24 |
|||
|
||||
| newalex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 15.11.2005 Репутация: нет Всего: нет |
Кинул всё, что мог
|
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |