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

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

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

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

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

在Windows Vista(可能是Windows 7)中,文件关联已更改:如果文件已与程序关联并且您重新关联该文件,则双击该文件将无法使用新程序打开它。 而是将关联添加到“打开方式”下的列表中。 另请参阅关于在Vista中注册关联应用程序的小讨论(Web Archive,原始链接已不复存在)。

我不确定改变它是否有益。 但是, 这篇文章讨论了您可以使用的注册表中的各种键。 但更好的是, 这个代码项目文章让您准备好使用代码在运行时关联文件。 我不知道它在Vista +上是否有所不同。

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

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