c# - 与应用程序的文件类型关联 (C#)

标签 c# .net registry file-type

我有几个相关的问题:

1) 是否可以让我的程序更改文件类型关联,但只有在运行时才可以?您认为这种行为有什么问题吗?

2) 我看到的另一个选项是让用户决定使用我的应用程序打开还是恢复默认关联...类似于:“捕获所有 .lala 文件”或“恢复 .lala 关联”。我怎样才能做到这一点?您认为最好的方法是什么?

最佳答案

关于文件关联,我之前写过一个答案,至少covers the "How" .

这也应该为您指出正确的方向,说明如何处理备份和恢复。通过 C# 直接访问注册表,无需使用 .reg 文件,因此您可以随意在应用程序中备份以前的值,也可以从那里恢复它。

这里的关键问题是:应该随机更改文件关联吗?至少预先询问用户显然是必要的(正如您也指出的那样)。

此外,启用了 UAC 的 Vista 用户或其他 Windows 版本的非特权用户可能没有更改全局文件关联所需的权限。您程序的(卸载)安装过程可能是唯一可以成功的地方。

编辑

作为Franci Penov indicated in his answer一种方法可以在每个用户的基础上更改本地文件关联,即使对于非管理员也是如此(这就是我在上一段中谈到“全局关联”的原因)。他还提到为什么去那里不太可取。

关于c# - 与应用程序的文件类型关联 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/222561/

相关文章:

c# - 验证当前文化中的双数

c# - 如何使用 LINQ 从列表中选择提供的索引范围内的值

.net - Get-Date 转换为字符串 vs ToString()

C#.NET 导入注册表配置单元并解析其内容

C# 错误 : System. Data.EvaluateException : Cannot perform '=' operation on System. 字符串和 System.Int32

c# - 'System.Collections.Generic.List<string>' 到 System.Collections.Generic.List<string>[*,*]

javascript - 在javascript中处理dropdownlist selectedindexchanged事件

.net - 单元测试 serilog 配置

ssl - Docker 私有(private)注册表 | TLS 证书问题

string - 如何使用Delphi和writebinary命令将二进制值的字符串格式写入注册表?