无法与正在开发的程序设置文件关联

时间:2014-03-18 15:58:23

标签: windows file-association open-with

Windows 7 - 我无法将可执行程序编程与其创建的文件类型相关联。

我使用(2种方式)获得"打开对话框":

1 -------------------

  • 控制面板 - 默认程序 - 将文件类型或协议与程序相关联
  • 我选择了我的文件扩展名,然后按"更改程序"

2 -------------------

  • 双击我的文档文件(目前还没有任何扩展名)
  • 选择"从已安装程序列表中选择一个程序"

在这两种情况下,我得到"打开"对话框。

问题描述: 我可以浏览我的.exe文件,但是当我选择它时("打开"在"打开..."文件选择对话框)......没有任何反应。没有新文件出现在&#34的可用可执行文件部分中;打开"对话框。

为什么它不起作用?

权限?注册表损坏?新规则 ?

1 个答案:

答案 0 :(得分:0)

这是你应该做的:

  1. 确保您的应用程序正确处理参数。当您使用应用程序打开关联的文件类型时,它将等同于在cmd中执行此命令

    YourApp.exe" C:\ Path \ fileName.ext"

    因此C:\Path\fileName.ext将作为参数传递给您的应用程序。

    你的主要课程应该是这样的:

    static void Main(string[] args) { ... }
    

    检查args中的filePath并编写代码以加载读取文件。

  2. 您需要将文件扩展名与应用程序相关联。您可以通过控制面板或在“打开方式”窗口中浏览应用程序。 (你已经这样做了)

  3. 编辑:尝试使用这些注册表将文件类型与您的应用程序相关联:

    [HKEY_CURRENT_USER\Software\Classes\<fileExt>]
    @="<fileClass>"
    
    [HKEY_CURRENT_USER\Software\Classes\<fileClass>]
    [HKEY_CURRENT_USER\Software\Classes\<fileClass>\OpenWithList]
    [HKEY_CURRENT_USER\Software\Classes\<fileClass>\OpenWithList\<appName>]
    
    [HKEY_CURRENT_USER\Software\Classes\Applications\<appName>]
    [HKEY_CURRENT_USER\Software\Classes\Applications\<appName>\shell]
    [HKEY_CURRENT_USER\Software\Classes\Applications\<appName>\shell\open]
    [HKEY_CURRENT_USER\Software\Classes\Applications\<appName>\shell\open\command]
    @="\"C:\\Program Files\\appFolder\\<appName>\" \"%1\""
    [HKEY_CURRENT_USER\Software\Classes\Applications\<appName>\SupportedTypes]
    "<fileExt>"=""