Меню по правой кнопке мыши

solo-h

Вопрос про винды. Как добавить в меню, вызываемое правой кнопкой мыши (на файле в експлорере какой-либо пункт и вызывать по нему какую-то программу?

ppplva

HKEY_CLASSES_ROOT - разбирайся.
или книжку добудь

solo-h

По-видимому, HKEY_CLASSES_ROOT\*\ shellex\ContextMenuHandlers

ppplva

Это, скорее всего, для всех файлов сразу. А если хочешь только для определенных расширений - то там отдельные подразделы для каждого. Попробуй посмотреть куда, например, winrar прописывается.

naska79

Действительно, в реестр надо зафигачить.
REGEDIT4

[HKEY_CLASSES_ROOT\.danya]
@="DANF"

[HKEY_CLASSES_ROOT\DANF\shell\open]
@="Play DANF type"

[HKEY_CLASSES_ROOT\DANF\shell\open\command]
@="\"C:\\Program Files\\Windows Media Player\\mplayer2.exe\" /play \"%L\" "

Теперь на файлах с *.danya (тип DANF) будет появляться пункт меню Play DANF type, по которому будет запускаться медиа плеер с этим файлом (%L)

solo-h

Вот это интересно! Но если это расширение уже по дефолту занято?
А через ContextMenuHandlers, видимо, придется мутить Com-объекты и прочую пургу

ppplva

> [HKEY_CLASSES_ROOT\DANF\shell\open]
Вот тут можно вместо open написать другую команду, и она появится в меню
open - стандартная команда.
Посмотри в реестре - там куча примеров.

solo-h

О, вот это супер! Спасибо, и !
В принципе, меня уже это устраивает, но можно ли аналогично это сделать для всех расширений? Или только через Com-объекты?

naska79

Содержимое контекстного меню навешивается на тип файла (DANF). А тип файла определяется по расширению (первая строчка в моем примеру) - если такое уже есть - то оно заменится и теперь все файлы с таким расширением станут твоего типа.
Если ты используешь уже занятое расширение файла, как винда сможет отличить "твои файлы" от "старых файлов". По содержимому файла? Не уверен, что это можно сделать... Я лично не знаю как.

ppplva

видел как делает winrar ? неужели ActiveX ?

The_fly

А нет ли какой-нибудь проги для ламера, которое все это делала бы?, а то в реестре копаться не хочу

sergei1969

windows commander (total commander теперь он) может редактировать это дело
menu: File->Associate With

The_fly

По-моему это не совсем то - там же только выставляется какой фаил чем будет открыт, а надо: настройка меню правой кнопки - WinAmp и ACDSee у меня прописались - вот хочу их пофигачить и свое вставить, а как такое делать не знаю

ppplva

А вот хз. Ищи.

The_fly

Никогда в реестре не рылся - боюсь как бы Винда копытца не откинула после моего хирургического вмешательства

haus-11

Сделай бэкап реестра и вперед с песнями, там ничего сложного нет

The_fly

Хе-хе, я не такой фанат Винды чтоб копаться в ней, тем более сиё знание вряд ли окажется полезным - кому нужна Win95, кроме меня

Dasar

> Если ты используешь уже занятое расширение файла, как винда сможет отличить "твои файлы" от "старых файлов". По содержимому файла? Не уверен, что это можно сделать... Я лично не знаю как.
Можно добавить в винду свой обработчик, который будет рюхать по содержимому.

naska79

Он вызовется по правому клику для последующего построения контекстного меню (с содержимым для нужного типа файлов)?
Кроме того, это должен быть жутко рюхливый обработчик

Dasar

Насчет меню не знаю, но иконки показывать разные точно можно..

Dasar

Через Com точно можно, без com-а шаманить надо...
Вот статья, которая рассказывает про расширения оболочки виндов
далее Статьи\Windows Shell\Руководство полного идиота по написанию расширений оболочки

voronetskaya

В WinCmd делается точно от что вам надо!
Выбираем EditTtype а там внизу такая кнопочка new... тыкаем ее, потом вводим action(verb) например fuck ну и так далее... потом то что туда навводили и будет отображаться в контекстном меню.
ЗЫ: Если кнопочка EditTtype не нажимается, значит надо сначала new type нажать, то есть зарегить тип и назначить дефолтное действие, только потом можно будет добавлять другие. И уже потом снова сделать associate with.

voronina

Только сегдня поставил распаковку .rar на открырие ентих файлов
Оставить комментарий
Имя или ник:
Комментарий: