2

Мне нужно открыть файлы типа .unitypackage с помощью команды Unity.exe -openfile "%1" , но если я " щелкну правой кнопкой мыши -> открыть с помощью", это позволит мне выбрать только программу, а не параметры командной строки.

Что я могу сделать, чтобы это исправить в Windows 8.1?

2 ответа2

5

В Windows 8 есть несколько вариантов установки файловой ассоциации. К сожалению, встроенные методы, как правило, не поддерживают такие причудливые, как пользовательские аргументы командной строки.

  • Вы можете щелкнуть правой кнопкой мыши файл и выбрать « Открыть с помощью», а затем « Выбрать программу по умолчанию», чтобы найти программу. Скорее всего, вам потребуется вручную отредактировать реестр, чтобы добавить параметр -openfile .

  • Вы можете установить ассоциации файлов с помощью приложения Set Default Programs ; снова вам нужно будет вручную изменить реестр, чтобы включить переключатель.

    Если вы идете по этому пути, то вы можете сделать это следующим образом:

    1. Выберите Настройки
    2. Тип associate
    3. Выберите Изменить тип файла, связанный с расширением файла.
    4. Выберите расширение файла
    5. Нажмите кнопку [Change Program]

    Обратите внимание, что вы можете не увидеть расширение файла в списке, если вы ранее не пытались открыть файл (например, с помощью предыдущего метода).

  • Используйте стороннюю программу, такую как FileTypesMan, для создания ассоциации файлов. С FileTypesMan вы можете сделать это так:

    1. Изменить → Новое расширение файла (или Ctrl+T)
    2. Заполните диалоговое окно, чтобы создать расширение .unitypackage:Снимок экрана:диалоговое окно "Расширение нового файла"
    3. Действия → Новое действие (или Ctrl+N)
    4. Заполните диалоговое окно:Снимок экрана:диалоговое окно "Новое действие"
  • Вручную создайте записи реестра для ассоциации. Я взял на себя смелость взяться за тебя. Просто скопируйте его в обычный текстовый файл, сохраните его с расширением .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 либо удалите эту часть вообще.)

2

В Windows 7 они регистрируют ключ HKEY_CLASSES_ROOT\txtfile\shell\print\command, содержащий "% SystemRoot%\system32\NOTEPAD.EXE /p% 1". Если вы найдете ключ для своего типа файла, возможно, изменив его на Unity.exe -openfile% 1 будет работать даже в Windows 8.1

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .