C # - Ассоциация файлов Доступ к разделу реестра 'HKEY_CLASSES_ROOT \' запрещен

В настоящее время у меня есть программа, которая устанавливает ассоциацию файлов с помощью реестра (обратите внимание, это .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);
5
задан Mirza Bilal 18 November 2013 в 22:14
поделиться