Открытие несколько файлов в одной копии программы через контекстное меню Windows

Требуется:
Запаковать выделенные файлы под пароль и залить архив на файлообменник

Способ:
В проводнике Windows выделить несколько папок и файлов, далее вызываем контекстное меню правой кнопкой, и выбираем добавленный ранее пункт контекстного меню(указывает на софт запаковки и аплауда)

Что получается сейчас:
Добавлен ключ в реестр HKEY_CLASSES_ROOT\*\shell\имя_софта\command\путь_к_софту.
Открывается несколько копий программы. И только папки или только файлы.

Что нужно:
Чтобы все выбранные файлы и папки передавались одной копии программы.

Примеры:
Могут послужить WinRar или 7Zip

Ну и вопрос — как это реализовать?
Или, возможно, есть уже готовые решения
  • Вопрос задан
  • 3595 просмотров
Пригласить эксперта
Ответы на вопрос 4
zenden2k
@zenden2k
PHP & C++ programmer
Если вас интересует программная реализация, то это делается путем написания расширения для проводника. Имплементация COM интерфейса IContextMenu и прочее. Вот статья www.rsdn.ru/article/winshell/shlext7.xml
Именно так делают WinRAR и 7zip. Есть и другие методики, но они тоже связаны с COM.

Если же вам интересует готовое решение, то есть программы, позволяющие это сделать, например
www.freewebs.com/dengdun/en/openxx.htm
Там можно в настройках добавить вашу команду, и выбрать Associate With: Multiple Files.
Ответ написан
pel
@pel
Нет сейчас под рукой винды, чтоб проверить. Но помню, что когда таким образом указываешь путь к программе, строка "%1" после имени экзешника означает, что вызывается на запуск файл, а параметром ему передадутся… передадутся… а может и не передадутся…
В общем, попробуйте так:
HKEY_CLASSES_ROOT\*\shell\имя_софта\command\путь_к_софту.exe %1
И курите тут:
msdn.microsoft.com/en-us/library/windows/desktop/cc144171(v=vs.85).aspx
Ответ написан
Комментировать
om2804
@om2804 Автор вопроса
>В общем, попробуйте так:
>HKEY_CLASSES_ROOT\*\shell\имя_софта\command\путь_к_софту.exe %1

так и есть
Ответ написан
Комментировать
adminimus
@adminimus
>Чтобы все выбранные файлы и папки передавались одной копии программы.

обычно делается так: при запуске программа проверяет наличие уже запущенного экземпляра, и если находит, то передает ему каким-либо образом имя открываемого файла и завершается. Я правильно понимаю, что вас интересует программная реализация? Или вы хотите обойтись одними настройками ОС? Если второе, то помните, что в WinXP максимальная длина командной строки около 8к символов
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы