我一直在尝试找到一种方法来更改Windows 7中特定文件扩展名的默认文件关联。我有一个用于查看.tif文件的应用程序,如果它不是该文件类型的默认查看器,则希望提示用户。如果他们选择将其设为默认值,则要覆盖当前默认查看器。如果系统上安装了其他查看器,则无法更改由此处控制的注册表键:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tif\UserChoice
我已经搜遍了网络,试图找到曾经做过这件事情的人,但似乎没有人有任何答案。当我尝试更新此键中的“Progid”值时,我会收到“无法写入注册表键”或“请求的注册表访问不被允许”错误。代码足够简单:
var path = @"Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.tif\UserChoice";
var key = Registry.CurrentUser.OpenSubKey(path, true);
key.SetValue("Progid", "myprogid...");
这个键是否有特殊保护,以防止它被程序编辑?