Visual C# Express Edition
Microsoft Windows Vista SP2
.NET Framework 3.5 SP1
Возникла такая проблема. Сначала запускается программулька от имени администратора и записывает в раздел реестра HKLM\Software\Programmulka какие-нибудь пары "ключ-значение":
Код:
RegistryKey rk = Registry.LocalMachine.CreateSubKey(@"Software\Programmulka");
rk.SetValue("ololo", "Pysh-pysh");
rk.close();
После этого эта же программулька запускается с обычными пользовательскими правами и читает эти же ключи:
Код:
RegistryKey rk = Registry.LocalMachine.CreateSubKey(@"Software\Programmulka");
string sName;
if (rk.GetValue("ololo") != null)
sName = (string)rk.GetValue("ololo");
rk.Close();
Проблема в том, что в случае чтения значений софтиной с обычными правами, возвращается какая-то лабуда. В случае чтения от имени админа - всё работает чики-пуки. После многих экспериментов я пришёл к выводу, что при запуске с обычными правами программулька обращается в какой-то собственный раздел HKLM, не имеющий отношения к реальному HKLM.
Права на чтение раздела установлены.
Если программулька от имени юзера запишет значение, то, КАК НИ СТРАННО, она потом исправно их читает!!! И в таком случае в реальный HKLM нифига не записывается!!!