Имя файла без расширения в качестве переменной реестра (windows 7)
У меня следующая проблема в Windows 7. Я пытаюсь создать контекстное меню для щелчка правой кнопкой мыши по файлам определенного типа, скажем, *.hyb
я хочу щелкнуть правой кнопкой мыши по таким файлам (например, filename.hyb
), опция в меню, такая как "Запустить с Myapplication", и когда я нажимаю на нее, я хочу, чтобы команда "Myapplication.exe filename" была запущена.
Мне удалось создать контекстное меню для этого конкретного файла, но проблема в том, что имя файла передается в качестве аргумента Myapplication.exe с его расширением. Myapplication.exe не может обрабатывать расширения файлов, поэтому мне нужно удалить его. Мой раздел реестра (хранится в HKEY_CURRENT_USER\Software\Classes\hyb_auto_file\shell\Myapplication\command
) имеет значениеC:\SomeFolder\Myapplication.exe
%1
Могу ли я настроить %1
параметр, чтобы имя файла передавалось без его расширения?
Большое спасибо!
1 ответ
Не получается записать "%~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
,