Как связать тип файла, который будет открыт с параметрами командной строки?
Мне нужно открыть файлы типа .unitypackage
используя команду Unity.exe -openfile "%1"
, но если я "щелкну правой кнопкой мыши -> открыть с помощью", это позволит мне выбрать только программу, а не параметры командной строки.
Что я могу сделать, чтобы исправить это на Windows 8.1?
2 ответа
В Windows 8 существует несколько различных вариантов установки файловой связи. К сожалению, встроенные методы не поддерживают такие причудливые аргументы, как пользовательские аргументы командной строки.
Вы можете щелкнуть правой кнопкой мыши файл и выбрать " Открыть с помощью", а затем " Выбрать программу по умолчанию", чтобы найти программу. Скорее всего, вам нужно будет вручную отредактировать реестр, чтобы добавить
-openfile
переключатель.Вы можете установить ассоциации файлов с помощью приложения Set Default Programs; снова вам нужно будет вручную изменить реестр, чтобы включить переключатель.
Если вы идете по этому пути, то вы можете сделать это следующим образом:
- Выберите Настройки
- Тип
associate
- Выберите Изменить тип файла, связанный с расширением файла.
- Выберите расширение файла
- Нажмите на
[Change Program]
кнопка
Обратите внимание, что вы можете не увидеть расширение файла в списке, если вы ранее не пытались открыть файл (например, с помощью предыдущего метода).
Используйте стороннюю программу, такую как FileTypesMan, для создания ассоциации файлов. С FileTypesMan вы можете сделать это так:
- Изменить → Новое расширение файла (или Ctrl + T)
- Заполните диалоговое окно, чтобы создать расширение
.unitypackage
: - Действия → Новое действие (или Ctrl + N)
- Заполните диалоговое окно:
Вручную создайте записи реестра для ассоциации. Я взял на себя смелость взяться за тебя. Просто скопируйте его в простой текстовый файл, сохраните его с расширением
.reg
не.reg.txt
(Вы можете сделать это, выбравAll Files (*.*)
в раскрывающемся списке типов файлов в диалоговом окне " Сохранить как "). Затем запустите сохраненный сценарий реестра и подтвердите слияние. Вы можете использовать жестко запрограммированные пути (которые вы можете редактировать при необходимости в текстовом редакторе) или использовать переменные, раскомментировав указанные строки (вам нужно будет отредактировать их в Regedit, так как они закодированы как шестнадцатеричные).REGEDIT4 [HKEY_CLASSES_ROOT\.unitypackage] @="UnityPackage" [HKEY_CLASSES_ROOT\UnityPackage] @="Unity Package" [HKEY_CLASSES_ROOT\UnityPackage\Shell\DefaultIcon] @="\"C:\\Program Files (x86)\\Unity\\Editor\\Unity.exe\",1" ; Uncomment the line below by removing the leading semi-colon to use an environment variable ("%ProgramFiles(x86)%\Unity\Editor\Unity.exe",1) instead of the hard-coded path above. ;@=hex(2):22,25,50,72,6f,67,72,61,6d,46,69,6c,65,73,28,78,38,36,29,25,5c,55,6e,69,74,79,5c,45,64,69,74,6f,72,5c,55,6e,69,74,79,2e,65,78,65,22,2c,31,00 [HKEY_CLASSES_ROOT\UnityPackage\Shell\Open] @="&Open" [HKEY_CLASSES_ROOT\UnityPackage\Shell\Open\Command] @="\"C:\\Program Files (x86)\\Unity\\Editor\\Unity.exe\" -openfile \"%1\"" ; Uncomment the line below by removing the leading semi-colon to use an environment variable ("%ProgramFiles(x86)%\Unity\Editor\Unity.exe") instead of the hard-coded path above. ;@=hex(2):22,25,50,72,6f,67,72,61,6d,46,69,6c,65,73,28,78,38,36,29,25,5c,55,6e,69,74,79,5c,45,64,69,74,6f,72,5c,55,6e,69,74,79,2e,65,78,65,22,20,2d,6f,70,65,6e,66,69,6c,65,20,22,25,31,22,00
(Примечание: Unity не установлен на моем текущем компьютере, поэтому я не могу проверить значки, включенные в двоичный файл, поэтому вам может потребоваться изменить ,1
в настройках DefaultIcon в скрипте реестра и диалогах на что то более подходящее вроде ,3
или же ,10
или что-то, если он вообще не включает в себя значки документов, то либо используйте ,0
или вообще уберите эту часть.)
В Windows 7 они регистрируют ключ HKEY_CLASSES_ROOT \ txtfile \ shell \ print \ command, содержащий "% SystemRoot% \ system32 \ NOTEPAD.EXE / p% 1". Если вы найдете ключ для своего типа файла, возможно, изменив его на Unity.exe -openfile% 1 будет работать даже в Windows 8.1