Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавить пункт в контекстное меню 
:(
    Опции темы
Cetus
Дата 18.4.2005, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 18.4.2004

Репутация: нет
Всего: 1



Как добавить пункт в контекстное меню проводника?
(вызывается при клике правой кнопкой на файле)
желательно чтобы пункт в меню находился снизу либо был отделен сплошной линией.
--------------------
Легко внести изменения в код.Трудно сделать это корректно.
PM MAIL   Вверх
Cetus
Дата 19.4.2005, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 18.4.2004

Репутация: нет
Всего: 1



знаю способ через реестр:
HKEY_CLASSES_ROOT\*\shellex\мой_пункт\command
значение по умолчанию := 'c:\exefile.exe'

но тогда пункт добавляется в верху списка,

мне же хотелось бы чтобы мой пункт меню находился внизу списка
для этого надо писать *.dll и подключать через CLSID.
кто нибудь практиковал?
--------------------
Легко внести изменения в код.Трудно сделать это корректно.
PM MAIL   Вверх
Cetus
Дата 24.4.2005, 09:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 18.4.2004

Репутация: нет
Всего: 1



Кто нибудь! откликнитесь!
--------------------
Легко внести изменения в код.Трудно сделать это корректно.
PM MAIL   Вверх
Alex
Дата 24.4.2005, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: 6
Всего: 162



Перенесенно из раздела Delphi


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
Rouse_
Дата 24.4.2005, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 469
Регистрация: 23.4.2005

Репутация: 18
Всего: 29



Цитата(Cetus @ 19.4.2005, 22:15)
мне же хотелось бы чтобы мой пункт меню находился внизу списка
для этого надо писать *.dll и подключать через CLSID.
кто нибудь практиковал?

Это очень легко, причем ты удивишся но именно такой пример идет в поставке с Дельфи. Находиться он тут: {delphi_path}\Demos\ActiveX\ShellExt\contmenu.dpr

Это сообщение отредактировал(а) Girder - 24.4.2005, 17:50


--------------------
 Vae Victis
(Горе побежденным (лат.))
Демо с открытым кодом: http://rouse.drkb.ru 
PM MAIL WWW ICQ   Вверх
Cetus
Дата 26.4.2005, 06:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 18.4.2004

Репутация: нет
Всего: 1



Rouse_ спасибо!
--------------------
Легко внести изменения в код.Трудно сделать это корректно.
PM MAIL   Вверх
Marsianin
Дата 20.11.2005, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 48
Регистрация: 24.11.2004

Репутация: нет
Всего: нет



Спасибо за примеры, за которыми, как оказалось далеко ходить не надо.
НО! Всё же есть 2 вопроса:

1. Как повесить своё меню на любой файл в системе - понятно. Но как сделать так, чтобы оно вызывалось и когда несколько файлов выделены ?

2. Как воткнуть в меню свою иконку ? Пробовал сделать через
Код

TheBitmap:=LoadBitmap(hInstance,'0')
SetMenuItemBitmaps(Menu, indexMenu+1, MF_BYPOSITION, TheBitMap, TheBitMap);
Но, наверное, где-то накосячил или не в том месте вставил. Не работает вообщем smile
PM MAIL   Вверх
newalex
Дата 20.11.2005, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 15.11.2005

Репутация: нет
Всего: нет



В нете есть статьи "РУководство полного идиота". Без обид только... Я сам когда разбирался, очень обиделся на название это. Так вот... там кода немеренно и на все вопросы найдешь ответы там. Единственный минус - на сях.
По поводу иконки... грузи из ресурса. Тип должен быть HBitmap.
PM MAIL   Вверх
Marsianin
Дата 21.11.2005, 02:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 48
Регистрация: 24.11.2004

Репутация: нет
Всего: нет



Да не нужны статьи, я более-менее разобрался в том, что уже есть в Delphi.
Вот только с иконками не пойму.
LoadBitmap(hInstance,'0') как раз загружает иконку из ресурса и выдаёт hBitMap, но видимо, я куда-то не туда всё это засунул, может грузить надо иконку где-то в специальном месте - не работает вообщем smile
PM MAIL   Вверх
newalex
Дата 21.11.2005, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 15.11.2005

Репутация: нет
Всего: нет



С ресурсом всё правильно делаешь? Директиву $R в начале не забыл? Может с индексами чего напутал, в смысле возле какого пункта иконку показывать?
В LoadBitmap(hInstance,'0') вместо 0 пиши имя того, что у тебя в файле ресурсе написано (имя иконки).
PM MAIL   Вверх
Marsianin
Дата 22.11.2005, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Awaiting Authorisation
Сообщений: 48
Регистрация: 24.11.2004

Репутация: нет
Всего: нет



Да нет, $R не забыл. Посмотрел же свой dll через Resource Hacker. Иконка там есть в ресурсах.
Называется: Bitmap - 1 - 0
Я так понял, что "0" и есть её название, которое нужно указать в LoadBitmap.

И ещё, где в DLL нужно делать загрузку bitmap из ресурса ? Непосредственно перед вставкой картинки в меню или где при инициализации DLL ?

С индексами...только дошло, что наверное накосячил. Т.к. сначала добавил свой пункт меню а потом на тот же индекс картинку, а оно, поидее, сместится уже должно. А чужому пункту картинка не добавится ?
PM MAIL   Вверх
newalex
Дата 22.11.2005, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 15.11.2005

Репутация: нет
Всего: нет



Вот тебе пример... немного доделаный стандартный пример из делфы. Внимательно изучи все файлы в архивчике. По себе знаю, что лучше пример перед глазами иметь. Делов на пять минут, но если первый раз, то муторно как-то это делать. Нормальных FAQ в нете нету (кроме тех статей, что я посоветовал, почитай на досуге всё-таки).
Ничего... как диплом сделаю, напишу свой FAQ на эту тему...

Слушай... напиши мне на мыло, а я тебе отвечу письмом с примером, а то чё-то у меня глючит тут всё...

Это сообщение отредактировал(а) newalex - 22.11.2005, 11:24
PM MAIL   Вверх
newalex
Дата 22.11.2005, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 92
Регистрация: 15.11.2005

Репутация: нет
Всего: нет



Кинул всё, что мог smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0560 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.