Показать сообщение отдельно

  #8  
Старый 07.02.2010, 14:28
herfleisch
Участник форума
Регистрация: 07.01.2009
Сообщений: 237
Провел на форуме:
745649

Репутация: 97
Отправить сообщение для herfleisch с помощью ICQ
По умолчанию

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 нифига не записывается!!!

Последний раз редактировалось herfleisch; 07.02.2010 в 14:33..
 
Ответить с цитированием