Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2010, 20:27   #1
Reanimator13
 
Регистрация: 24.12.2009
Сообщений: 8
По умолчанию Работа с реестром (Запрошенный доступ к реестру запрещен)

Доброго времени суток!
Столкнулся с такой проблемой: Хотел написать программу, которая работает с реестром (кто та когда то сказал что каждый программист обязан написать свой твикер), но при обращении к ветви реестра [HKEY_CURRENT_USER\Software\Microsof t\Windows\CurrentVersion\Policies\E xplorer] выдает ошибку (точнее при запуске приложение зависает, а строчка с кодом выделяется желтым цветом), и выскакивает ошибка "Запрошенный доступ к реестру запрещен."
Прошу помощи уже 2ой день бьюсь, не могу понять как открыть доступ.
Все действия выполняются на Windows 7 с правами администратора.
Код на С#:

RegistryKey ZapTems = Registry.CurrentUser.OpenSubKey("So ftware\\Microsoft\\Windows\\Current Version\\Policies\\Explorer", false);
if (ZapTems.GetValue("NoThemesTab") == null)
{
TemZapret.Checked = false;
RegistryKey regKey = Registry.CurrentUser.OpenSubKey("So ftware\\Microsoft\\Windows\\Current Version\\Policies\\Explorer",true); // <----- Вот здесь выскакивает ошибка
regKey.SetValue("NoThemesTab", "0", RegistryValueKind.DWord);
regKey.Close();
}
else
{
Int32 LoadZapretTem = (Int32)ZapTems.GetValue("NoThemesTa b");
if (LoadZapretTem == 0)
{
TemZapret.Checked = false;
}
else if (LoadZapretTem == 1)
{
TemZapret.Checked = true;
}
}

Последний раз редактировалось Reanimator13; 15.03.2010 в 21:01.
Reanimator13 вне форума Ответить с цитированием
Старый 15.03.2010, 21:15   #2
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Может один раз открывать
Код:
            Microsoft.Win32.RegistryKey myKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer", true);
            if (myKey.GetValue("NoThemes") == null)
            {
                myKey.SetValue("NoThemes", "0", RegistryValueKind.DWord);
            }
            else
                MessageBox.Show("NO");
Cpluser вне форума Ответить с цитированием
Старый 15.03.2010, 21:20   #3
BOZKURT
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 70
По умолчанию

А если вот так:
Код:
                Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", 
                    Microsoft.Win32.RegistryKeyPermissionCheck.ReadWriteSubTree, 
                    System.Security.AccessControl.RegistryRights.SetValue);
                regKey.SetValue("NoThemesTab", "0", Microsoft.Win32.RegistryValueKind.DWord);
                regKey.Close();
BOZKURT вне форума Ответить с цитированием
Старый 15.03.2010, 21:27   #4
Reanimator13
 
Регистрация: 24.12.2009
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Cpluser Посмотреть сообщение
Может один раз открывать
Код:
            Microsoft.Win32.RegistryKey myKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer", true);
            if (myKey.GetValue("NoThemes") == null)
            {
                myKey.SetValue("NoThemes", "0", RegistryValueKind.DWord);
            }
            else
                MessageBox.Show("NO");
к моему сожалению не помогло... та же самая ошибка...
прикреплю скриншот, может так кому то станет понятней
Скриншот:
Скриншот.jpg
Reanimator13 вне форума Ответить с цитированием
Старый 15.03.2010, 21:32   #5
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

А так у вас открываетса regedit
Cpluser вне форума Ответить с цитированием
Старый 15.03.2010, 21:39   #6
Reanimator13
 
Регистрация: 24.12.2009
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Cpluser Посмотреть сообщение
А так у вас открываетса regedit
regedit открываться и можно менять(или создавать параметры)я могу без каких либо проблем (могу создать reg-файл и запустить)... так что я думаю что это Microsoft Visual Studio 2008 меня "держит"... я что та читал об "изолированном хранилище", но честно говоря так и не понял для чего оно было создано (защитить меня от меня же самого?)
Reanimator13 вне форума Ответить с цитированием
Старый 15.03.2010, 22:27   #7
Reanimator13
 
Регистрация: 24.12.2009
Сообщений: 8
По умолчанию Решение... (если так можно назвать)

Ну вообщем результат 2ух дневной битвы оказался довольна прост...
если запустить мою программу от имени администратора то она без проблем все выполняет
Reanimator13 вне форума Ответить с цитированием
Старый 15.03.2010, 22:34   #8
BOZKURT
Пользователь
 
Регистрация: 14.10.2009
Сообщений: 70
По умолчанию

http://translate.google.kz/translate...918657,00.html
http://social.msdn.microsoft.com/For...4-3bd0415b1f91
BOZKURT вне форума Ответить с цитированием
Старый 14.05.2015, 12:51   #9
ZiDoxFix
Пользователь
 
Регистрация: 09.05.2015
Сообщений: 70
По умолчанию

на будующее всегда подключайте using типо
Цитата:
using Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(
ZiDoxFix вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалённый доступ к реестру Gert Общие вопросы Delphi 6 24.04.2012 07:43
windbg удаленная отладка на vmware, ошибка - доступ запрещен ReaderOfDream Win Api 1 22.11.2009 16:34
Доступ к реестру Terran Общие вопросы Delphi 1 27.03.2008 01:59
Работа с реестром. eL1tE Общие вопросы Delphi 5 16.04.2007 15:48