Я столкнулся с той же проблемой, что и @jtpereyda, и решение @bobbymcr у меня тоже не сработало. Я пытался получить все параметры командной строки, передаваемые в сценарии node.js, без необходимости использовать файл node.exe в команде.
Проблема в том, что если вы уже связали программу с расширением через Open With
диалоговое окно, то вы создадите ассоциацию приложений, а не ассоциацию расширений файлов, между ними. И ассоциации приложений имеют приоритет.
Если вы не возражаете против редактирования реестра, вы можете изменить (Default)
ключ по следующему пути:
HKEY_CLASSES_ROOT\Applications\node.exe\shell\open\command
Вам следует заменить node.exe
приложение, которое вы настраиваете.
Или вы можете просто удалить папку приложения из HKEY_CLASSES_ROOT\Applications
папки, и ваша ftype
ассоциация начнет работать.
Обязательно используйте, %*
который будет передавать оставшиеся неопределенные аргументы командной строки или вообще ничего. Если вы это сделаете, "%2" "%3" "%4" "%5"
вы получите 5 пустых строковых параметров, переданных в ваше приложение, если вы не укажете аргументы командной строки.
Наконец, если вы не согласны с изменением реестра вручную, вы можете использовать бесплатный инструмент от Nirsoft - FileTypesManager - http://www.nirsoft.net/utils/file_types_manager.html
Файловые ассоциации появятся вверху списка, без текста в первом столбце расширения. Просто найдите имя исполняемого файла в списке и выберите его, чтобы изменить command line
поле для имени open
действия.
На windows7 изменения отразились сразу же без перезагрузки или перезапуска приложения. Однако утилита Nirsoft имеет функцию «Обновить рабочий стол» при любой модификации, поэтому я полагаю, что, возможно, Vista или более ранние версии ОС будут кэшировать данные. В этом случае утилита будет лучше, в противном случае вам может потребоваться выйти из системы и войти, чтобы увидеть изменения.