![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 1 Всего: 6 |
Есть прога, которая переименовывает файлы по указанным правилам. Это удобно, например, для фоток. Как связать ее с каким-либо расширением я знаю. Но я хочу чтобы команда RenemIt в контекстном меню была для файлов ВСЕХ расширений. Как, например, у Winrar команда "Добавить в архив" не зависит от расширения файла. Не подскажете, как это сделать?
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
"HKEY_CLASSES_ROOT/*"
Там есть раздел "shellEx/ContextMenuHandlers", где, кроме прочего, определены пункты того же WinRar и 7z. |
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 1 Всего: 6 |
skyboy, спасибо. Там есть Winrar. А сами команды-то где?
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
погляди содержимое "HKCR/CLSID/{код, содержащийся в соответствующей записи в HKCR/*/shellEx/ContextMenuHandlers/WinRar/}"
|
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 1 Всего: 6 |
Посмотрел. Там раздел InProcServer32 и в одном из параметров путь к dll. Самих команд так и не вижу. В связи с этим вопрос. WinRar, видимо, как-то юзает OLE для вызова при выборе команды в контекстном меню. Наверное, Winrar для моего случая не пример. Но есть же простенькие проги типа notepad. Они не юзают OLE. Наверняка есть возможность связать мою простенькую прогу со всеми расширениями по-простому. Как?
|
|||
|
||||
| Sansa |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 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 --------------------
- Здравствуйте, я Ваш патологоанатом |
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 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\* не было, пришлось создать. Нашел тут. Имхо, очень полезный ресурс. Всем спасибо! Вопрос закрыт. |
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 1 Всего: 6 |
Всё работает. Пункт в меню появился, даже перезагружать не пришлось. При щелчке в примере выше запускается блокнот.
Добавлено @ 20:05 Ты имеешь в виду, что файлы не передаются в командной строке? Ну так это уже мелкие штрихи... @="c:\\MyCoolProg.exe %1" |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 4 Всего: 260 |
Тутанхамец, я имею в виду, что если ты переопределишь команду Open для .ехе-файлов, то запускать программы ты сможешь только через контекстное меню.
|
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 1 Всего: 6 |
Ничего подобного. Запускаются нормально, как и раньше, двойным щелчком. Добавлено @ 17:32 А, блин! Понял. skyboy, мы с тобой о разном. Ты наверное имеешь в виду метод, который Sansa предложил, а я уже говорю про тот, который сам нашел. |
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 1 Всего: 6 |
Я поторопился. Вопрос не решен. Всё нормально работает, когда я выделяю в проводнике 1 файл. А если выделяю больше, то для каждого файла запускается отдельный экземпляр моей проги. Мне такое не надо. Мне надо, чтобы один экземпляр получал все файлы в командной строке. Как бы так сделать, а?
|
|||
|
||||
| VICTAR |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 37 Всего: 80 |
||||
|
||||
| VaiMR |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 25.11.2006 Репутация: нет Всего: 2 |
А нельзя "Name.*" использовать при обработке файлов что ли?
Кстати, все время просят: "Один вопрос одна тема". |
|||
|
||||
| VICTAR |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1108 Регистрация: 6.10.2006 Репутация: 37 Всего: 80 |
||||
|
||||
| VaiMR |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 25.11.2006 Репутация: нет Всего: 2 |
Это маска файла:
*.* - все файлы *.jpg - все файлы с расширением jpg name.* - все файлы и именем "name" и любым расширением |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |