Имя файла без расширения в качестве переменной реестра (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,

Другие вопросы по тегам