У меня есть следующая проблема на Windows 7. Я пытаюсь создать контекстное меню для щелчка правой кнопкой мыши по файлам определенного типа, скажем, *.hyb , т.е. я хочу, чтобы при щелчке правой кнопкой мыши по файлам такого типа (например, filename.hyb), была выбрана опция в меню, например "Запустить с Myapplication", и когда я нажимаю на него, я хочу, чтобы команда «Myapplication.exe имя файла» была выполнена.

Мне удалось создать контекстное меню для этого конкретного файла, но проблема в том, что имя файла передается в качестве аргумента Myapplication.exe с его расширением. Myapplication.exe не может обрабатывать расширения файлов, поэтому мне нужно удалить его. Мой раздел реестра (хранится в HKEY_CURRENT_USER\Software\Classes\hyb_auto_file\shell\Myapplication\command) имеет значение C:\SomeFolder\Myapplication.exe %1

Можно ли настроить параметр %1 чтобы имя файла передавалось без его расширения?

Большое спасибо!

1 ответ1

0

Не работает запись "% ~ dpn1" в реестр.

Вы можете вызвать командный файл CMD который отключает расширение и вызывает ваше приложение:

Содержимое файла hyb.cmd:

echo on

myApp.exe "%~dpn1"

«% ~ dpn1» примет диск + путь + имя параметра 1 и пропустит расширение.

Файл определения реестра hyb.reg для вызова этого скрипта:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.hyb]

[HKEY_CLASSES_ROOT\.hyb\shell]

[HKEY_CLASSES_ROOT\.hyb\shell\open hyb file]

[HKEY_CLASSES_ROOT\.hyb\shell\open hyb file\command]
@="cmd.exe /c hyb.cmd \"%1\""

Обратите внимание, что Windows предоставляет полезные команды для поддержания связей файлов из командной строки, не затрагивая реестр. Спросите Google для ASSOC и FTYPE .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .