2009-11-04 4 views
1

В настоящее время я разрабатываю приложение C#, которое записывает изменения реестра, сохраняет их в файл, а затем сможет записать настройки, сохраненные в файле, в реестр.C#, не записывающий значения в реестр

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

Для получения дополнительной информации я создаю и тестирую приложение в Windows XP SP3.

Просто, чтобы показать вам, что я делаю, есть два примера. Один ниже, я использовал только, чтобы создать новые подразделы и значения и ни в какой точке делать какие-либо появляются в смерзаться:

RegistryKey rk = Registry.CurrentUser.CreateSubKey("Test9999"); 

      using (RegistryKey testName = rk.CreateSubKey("TestName"), testSettings = rk.CreateSubKey("TestSettings")) 
      { 
       // Create data for the TestSettings subkey. 
       testSettings.SetValue("Language", "French"); 
       testSettings.SetValue("Level", "Intermediate"); 
       testSettings.SetValue("ID", 123); 
      } 

Этот второй пример показывает ключ, который я действительно хочу работать, что я тестирование здесь заключается в том, создает ли он новый тест значения, вводит значение, удерживаемое тестовой строкой, и устанавливает его как правильный вид значения. Реальное значение Я хочу изменить это в том же ключе, который изменяет ли перспективы чтения панели находится справа или внизу экрана 01020402, но я подумал, что было бы лучше, чтобы проверить первый:

Registry.Users.SetValue("S-1-5-21-2055990625-1247778217-514451997-41655\\\\Software\\\\Microsoft\\\\Windows NT\\\\CurrentVersion\\\\Windows Messaging Subsystem\\\\Profiles\\\\Outlook\\\\0a0d020000000000c000000000000046\\\\test", testing, RegistryValueKind.String); 

В вышеприведенном Например, новое значение не создается или не сохраняется.

Если кто-нибудь может видеть, где я иду не так, или помогать мне, это будет оценено.

+0

Только что проверил ваш первый блок кода, и он отлично работает. Вы уверены, что обновляете RegEdit после запуска кода? – GenericTypeTea

+0

Yep ударяя F5, чтобы обновить и закрыть/открыть его, чтобы проверить и все еще ничего, также попробовал свои предложения Flush() и Close() – manemawanna

+0

Вы ищете подходящее место? То есть ваш первый блок использует CurrentUser, а ваш второй блок использует пользователей? Просто хватаясь за соломинку, потому что все работает для меня. – GenericTypeTea

ответ

0

Оказалось, что это ложная тревога из-за запуска Visual Studio 2008 в качестве виртуального приложения в качестве морской свинки для одного из моих коллег по работе.

Спасибо за помощь.

Смежные вопросы