Запись в реестр ошибок локальной машины - PullRequest
1 голос
/ 26 июля 2011

Я хочу установить значок по умолчанию для некоторого расширения с помощью C #. Но это дает мне ошибку -> Исключение безопасности не было обработано

RegistryKey FileExt = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Classes", RegistryKeyPermissionCheck.ReadWriteSubTree);

Как я могу это сделать?

Ответы [ 4 ]

1 голос
/ 26 июля 2011

Возможно, пользователь, которого вы используете для входа на компьютер, не имеет прав доступа к реестру или его изменения. попробуйте запустить код с учетной записью администратора и посмотреть, что произойдет. также, если нет пользователя, вошедшего в систему, такая же ошибка может произойти, например, проверка this .

1 голос
/ 26 июля 2011

попробуйте запустить приложение от имени администратора.

0 голосов
/ 26 июля 2011

попробуйте этот метод вместо вашего:

public RegistryKey OpenSubKey(
    string name,
    bool writable
)

Возможно, достаточно true; -)

Registry.LocalMachine.OpenSubKey("SOFTWARE\\Classes", true);
0 голосов
/ 26 июля 2011

Я предполагаю, что это в Windows Vista или 7.

Возможно, вам понадобятся повышенные привилегии для изменения некоторых значений в реестре.Даже пользователь с административными привилегиями получит всплывающее окно UAC с просьбой разрешить, прежде чем программа сможет это сделать.

Посмотрите на вопрос об этом.

Здеськодовый проект статья о получении повышенных привилегий.

...