如何绑定要使用命令行选项打开的文件类型?

如何绑定要使用命令行选项打开的文件类型?

我需要.unitypackage使用命令打开类型的文件Unity.exe -openfile "%1",但如果我“右键单击->打开方式”,它只允许我选择程序,而不是命令行选项。

我该怎么做才能修复 Windows 8.1 上的该问题?

答案1

在 Windows 8 中,有几种不同的选项可以设置文件关联。不幸的是,内置方法往往不支持任何花哨的自定义命令行参数。

  • 你可以右键点击一个文件并选择打开用, 然后选择默认程序浏览该程序。您可能需要手动编辑注册表以添加开关-openfile

  • 您可以使用设置默认程序应用程序;您将再次需要手动修改注册表以包含该开关。

    如果你走的话 路线,那么你可以这样做:

    1. 选择设置
    2. 类型associate
    3. 选择更改与文件扩展名关联的文件类型
    4. 选择文件扩展名
    5. 点击[Change Program]按钮

    请注意,如果您之前没有尝试打开该文件(例如使用以前的方法),则可能无法在列表中看到文件扩展名。

  • 使用第三方程序,如文件类型管理器创建文件关联。使用 FileTypesMan,您可以这样做:

    1. 编辑 → 新建文件扩展名(或Ctrl+ T
    2. 填写对话框以创建扩展.unitypackage新建文件扩展名对话框的屏幕截图
    3. 行动 → 新行动(或Ctrl+ N
    4. 填写对话框: 新操作对话框的屏幕截图
  • 手动创建关联的注册表项。我冒昧地为您准备了一个。只需将其复制到纯文本文件,确保将其保存为扩展名.reg,而不是.reg.txt(您可以通过All Files (*.*)在文件类型下拉菜单中选择另存为对话框)。然后运行保存的注册表脚本并接受合并。您可以使用硬编码路径(如果需要,您可以在文本编辑器中编辑)或通过取消注释指定的行来使用变量(您需要在注册表编辑器因为它们被编码为十六进制)。

    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更改默认图标注册表脚本和对话框中的设置更改为更合适的内容,例如,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 上也可以工作

相关内容