В настоящее время у меня есть программа, которая устанавливает ассоциацию файлов с помощью реестра (обратите внимание, что это .NET 2.0, поэтому мне нужно пройти через метод реестра). Проблема в том, что, поскольку она пытается писать в HKCR, существует вероятность того, что она столкнулась с административной проблемой (на других машинах). Существует ли более универсальный способ установления ассоциации файлов (для .NET 2.0), например, с использованием HKCU или какого-либо другого метода, который не требует административных прав.C# - File Assocation Доступ к разделу реестра «HKEY_CLASSES_ROOT » отрицается
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);
+1 больше, чем я предлагал! –
@ Давид Да ... но это дешево. Сначала вы ответили, я просто ловил за голоса :) –
Благодарим вас за всю информацию. Похоже, использование HKCU было бы более уместным. Для установщика я в настоящее время использую установщик Visual Studios. Кроме того, в моем приложении есть возможность отключить ассоциацию файлов, поэтому она выходит за рамки программы установки. – user