我目前有一个使用注册表设置文件关联的程序(注意,它是 .NET 2.0,所以我必须通过注册表方法)。问题是,由于它正在尝试写入 HKCR,它可能会遇到管理问题(在其他机器上)。是否有更通用的方法来设置文件关联(对于 .NET 2.0),例如使用 HKCU 或其他不需要管理权限的方法。
string keyName = "Class";
string keyValue = "Class File";
string apppath = Application.ExecutablePath.ToLower() + " \"%1\"";
RegistryKey key;
key = Registry.ClassesRoot.CreateSubKey(keyName);
key.SetValue("", keyValue);
RegistryKey iconkey;
key = Registry.ClassesRoot.CreateSubKey(keyName);
iconkey = key.CreateSubKey("DefaultIcon");
iconkey.SetValue("", Environment.CurrentDirectory + "\\resources\\musicfile.ico");
key = key.CreateSubKey("shell");
key = key.CreateSubKey("open");
key = key.CreateSubKey("command");
key.SetValue("", apppath);