【问题标题】:How to programmatically create a file association that works in XP, Vista and Windows 7如何以编程方式创建适用于 XP、Vista 和 Windows 7 的文件关联
【发布时间】:2010-12-20 22:24:52
【问题描述】:

我希望能够从我的程序中注册我的文件扩展名。 (将文件类型与我的程序相关联)

关于这方面的文章很多,但据我所知,所讨论的技术(修改注册表)仅适用于 Windows XP。

将文件类型与程序关联以使其在 XP、Vista 和 Windows 7 下也能工作的最佳方法是什么? (是否有任何工作代码示例?)

ClickOnce 是一个选项,但这只会在安装时注册文件类型,而我希望能够在运行时注册文件类型。

【问题讨论】:

标签: c# windows-7 windows-vista windows-xp file-association


【解决方案1】:

在 Windows Vista(可能是 Windows 7)中,文件关联发生了变化:如果文件已经与某个程序关联并且您重新关联它,则双击该文件将不会使用新程序打开它。相反,该关联被添加到“打开方式”下的列表中。另请参阅registering your application for associations in Vista 上的这个小讨论(Web Archive,原始链接已消失)。

我不确定改变这一点是否好。但是,this post discusses 注册表中可以使用的各种键。但更好的是,this codeproject article 让您可以随时使用代码在运行时关联文件。我不知道它在 Vista+ 上的工作方式是否有所不同。

【讨论】:

    【解决方案2】:

    如果您需要在非管理员场景中添加文件关联,您可以使用this article 中描述的用户特定文件关联。查看“用户特定的文件关联”。

    【讨论】:

      【解决方案3】:

      就文件关联而言,从 XP 到 Vista/7 只有几个变化,因此大多数 XP 示例应该仍然有效。您应该关心的唯一想法是 XP 中不存在的 Vista/7 中的“默认程序”设置,它会覆盖其他文件关联注册。

      【讨论】:

        猜你喜欢
        • 2010-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多