Есть ли способ программно установить раздел реестра «UserChoice», чтобы он взял на себя ассоциацию типов файлов? ⇐ C#

Место общения программистов C#
Anonymous
Есть ли способ программно установить раздел реестра «UserChoice», чтобы он взял на себя ассоциацию типов файлов?

Сообщение Anonymous »

Я пытался найти способ изменить ассоциацию файлов по умолчанию для
определенного расширения файла в 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...");
Существует ли какая-либо специальная защита этого ключа, предотвращающая его
программное редактирование?

Подробнее здесь: https://stackoverflow.com/questions/619 ... -to-take-o

Вернуться в «C#»