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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как связать свою прогу, с файлами всех расширений 
V
    Опции темы
Тутанхамец
Дата 15.1.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



Есть прога, которая переименовывает файлы по указанным правилам. Это удобно, например, для фоток. Как связать ее с каким-либо расширением я знаю. Но я хочу чтобы команда RenemIt в контекстном меню была для файлов ВСЕХ расширений. Как, например, у Winrar команда "Добавить в архив" не зависит от расширения файла.  Не подскажете, как это сделать?
PM MAIL   Вверх
skyboy
Дата 15.1.2007, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



"HKEY_CLASSES_ROOT/*"
   Там есть раздел "shellEx/ContextMenuHandlers", где, кроме прочего, определены пункты того же WinRar и  7z.
PM MAIL   Вверх
Тутанхамец
Дата 15.1.2007, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



skyboy, спасибо. Там есть Winrar. А сами команды-то где? 
PM MAIL   Вверх
skyboy
Дата 15.1.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



погляди содержимое "HKCR/CLSID/{код, содержащийся в соответствующей записи в HKCR/*/shellEx/ContextMenuHandlers/WinRar/}"
PM MAIL   Вверх
Тутанхамец
Дата 15.1.2007, 18:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



Посмотрел. Там раздел InProcServer32 и в одном из параметров путь к dll. Самих команд так и не вижу. В связи с этим вопрос. WinRar, видимо, как-то юзает OLE для вызова при выборе команды в контекстном меню. Наверное, Winrar для моего случая не пример. Но есть же простенькие проги типа notepad. Они не юзают OLE. Наверняка есть возможность связать мою простенькую прогу со всеми расширениями по-простому.  Как?


PM MAIL   Вверх
Sansa
Дата 15.1.2007, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 173
Регистрация: 18.10.2006
Где: Королев

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



Для всех объектов файловой системы - HKCR\AllFilesystemObjects

Пример с winrar 
REGEDIT4

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\open\command]
@="\"C:\\Program Files\\WinRAR\\WinRAR.exe\" \"%1\""

Токма придется разбирать, где папка, а где файл

Добавлено @ 18:46 
Если нужно только для папок, то HKCR\Directory
--------------------
- Здравствуйте, я Ваш патологоанатом
PM MAIL ICQ   Вверх
Тутанхамец
Дата 15.1.2007, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



У меня не было раздела shell в AllFilesystemObjects. 
Работаю в WinXP Pro. 
Я создал shell\open\command, но это ни к чему не привело. Команды в контекстном меню всё равно не появилось. 

Продолжаем думать, товарищи...

Добавлено @ 19:57 
Товарищи, решение найдено!

REGEDIT4
[HKEY_CLASSES_ROOT\*\shell\DoSomeThing]
@="Что-то сделать"

[HKEY_CLASSES_ROOT\*\shell\DoSomeThing\command]
@="c:\\MyCoolProg.exe"

Раздела shell в HKEY_CLASSES_ROOT\* не было, пришлось создать. 

Нашел тут. Имхо, очень полезный ресурс. 

Всем спасибо! Вопрос закрыт. 
PM MAIL   Вверх
Тутанхамец
Дата 15.1.2007, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



Всё работает. Пункт в меню появился, даже перезагружать не пришлось. При щелчке в примере выше запускается блокнот.

Добавлено @ 20:05 
Ты имеешь в виду, что файлы не передаются в командной строке? Ну так это уже мелкие штрихи...

@="c:\\MyCoolProg.exe %1"

PM MAIL   Вверх
skyboy
Дата 15.1.2007, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

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



Тутанхамец, я имею в виду, что если ты переопределишь  команду Open для .ехе-файлов, то запускать программы ты сможешь только через контекстное меню.
PM MAIL   Вверх
Тутанхамец
Дата 16.1.2007, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



Цитата

запускать программы ты сможешь только через контекстное меню. 


Ничего подобного. Запускаются нормально, как и раньше, двойным щелчком.

Добавлено @ 17:32 
А, блин! Понял. skyboy, мы с тобой о разном. Ты наверное имеешь в виду метод, который Sansa предложил, а я уже говорю про тот, который сам нашел. 
PM MAIL   Вверх
Тутанхамец
Дата 19.1.2007, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 612
Регистрация: 10.10.2005
Где: в пирамидЕ!

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



Я поторопился. Вопрос не решен. Всё нормально работает, когда я выделяю в проводнике 1 файл. А если выделяю больше, то для каждого файла запускается отдельный экземпляр моей проги. Мне такое не надо. Мне надо, чтобы один экземпляр получал все файлы в командной строке. Как бы так сделать, а?
PM MAIL   Вверх
VICTAR
Дата 19.1.2007, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Тутанхамец,  попробуй этот пример. 

Присоединённый файл ( Кол-во скачиваний: 33 )
Присоединённый файл  Project.rar 3,37 Kb
PM MAIL   Вверх
VaiMR
Дата 19.1.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А нельзя "Name.*" использовать при обработке файлов что ли?

Кстати, все время просят: "Один вопрос одна тема". 
PM MAIL ICQ   Вверх
VICTAR
Дата 19.1.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(VaiMR @  19.1.2007,  17:46 Найти цитируемый пост)
А нельзя "Name.*" использовать при обработке файлов что ли?


Какой "Name.*"? Что ты имеешь ввиду? 

PM MAIL   Вверх
VaiMR
Дата 19.1.2007, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Это маска файла:

*.* - все файлы
*.jpg - все файлы с расширением jpg
name.* - все файлы и именем "name" и любым расширением
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

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

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

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


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

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


 




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


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

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