-1

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

我正在使用(2种方式)来获得“用对话框打开”:

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

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

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

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

在这两种情况下,我都会得到“打开方式”对话框。

问题描述: 我可以浏览我的 .exe 文件,但是当我选择它时(“打开方式...”文件选择对话框中的“打开”)...什么也没有发生。“打开方式”对话框的可用可执行文件部分中没有新文件出现。

为什么它不起作用???

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

4

1 回答 1

0

这是你应该做的:

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

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

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

    你的主类应该是这样的:

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

    检查 filePathargs并编写代码以加载读取文件。

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

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

[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>"=""
于 2014-03-21T11:32:30.100 回答