Я столкнулся с той же проблемой, что и @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 или более ранние версии ОС будут кэшировать данные. В этом случае утилита будет лучшей ставкой, в противном случае вам может потребоваться выйти и войти, чтобы увидеть изменения.