如何以编程方式创建在XP,Vista和Windows 7中工作的文件关联

时间:2009-11-27 09:46:16

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

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

有很多关于此的文章,但据我所知,所讨论的技术(摆弄注册表)仅适用于Windows XP。

将文件类型与程序关联以使其在XP,Vista和Windows 7下运行的最佳方法是什么? (有没有工作代码示例?)

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

3 个答案:

答案 0 :(得分:6)

在Windows Vista(可能是Windows 7)中,文件关联已更改:如果文件已与程序关联并重新关联,则双击该文件将无法使用新程序将其打开。相反,关联将添加到“打开方式”下的列表中。另请参阅registering your application for associations in Vista上的这个小讨论(网络档案,原始链接已经消失)。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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