Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2012.04.22;
Скачать: [xml.tar.bz2];

Вниз

TRegistry в службе   Найти похожие ветки 

 
alex870   (2010-12-09 00:28) [0]

Здравствуйте!
Не могу обратится к параметру реестра из службы.
Вот функция

function TServ.RegQueryStr():String;
var
 Reg : TRegistry;
 str : string;
begin
 Result := "";
 Reg := TRegistry.Create(KEY_READ);
 try
   Reg.RootKey := HKEY_CURRENT_USER;
   if Reg.OpenKey("Software\Microsoft\MediaPlayer\Player\RecentFileList") then
   begin
     Result := Reg.ReadString("File0");
     Reg.CloseKey;
   end;
 finally
   Reg.Free;
 end;
end;

Если написать просто программу - работает, а если вставляю в службу -нет. Не находит параметр "File0". Я подозреваю, что это из-за того, что служба запускается из-под Системы, а не от пользователя, но сомнительно, что в этом причина, я же указываю RootKey. Подскажите пожалуйста как победить. Или хотябы в чем особенность работы с реестром из службы.
Спасибо.


 
Eraser ©   (2010-12-09 01:15) [1]

>
>
> [0] alex870   (09.12.10 00:28)


> Системы, а не от пользователя, но сомнительно, что в этом
> причина, я же указываю RootKey

в этом, как раз и причина.

HKEY_CURRENT_USER - переводится как текущий пользователь. в случае службы - это система.
hint: см. ветку HKEY_USERS + почитай у Руссановича про реестр.


 
Palladin ©   (2010-12-09 09:38) [2]

...или запускать службу от имени нужного пользователя


 
alex870   (2010-12-09 21:30) [3]

Спасибо большое! Почитаю. Т.е. как я понял, система не видит ветку HKEY_CURRENT_USER? Ну не суть, главное развеяли мои сомнения, еще раз огромное спасибо.


 
Eraser ©   (2010-12-09 21:35) [4]

> [3] alex870   (09.12.10 21:30)


> Т.е. как я понял, система не видит ветку HKEY_CURRENT_USER?

почитай ;-)


 
Anatoly Podgoretsky ©   (2010-12-09 21:48) [5]


> .е. как я понял, система не видит ветку HKEY_CURRENT_USER?

Не так, прекрасно видит.


 
alex870   (2010-12-09 22:33) [6]

Спасибо, разобрался. Для тех кому интересно как: CURRENT_USER для службы это Система (SYSTEM). Настройки пользователей хранятся в HKEY_USERS в разделах с названиями, совпадающими с их SID"ами (Security ID). Нужно просто найти нужный SID. Путь же к разделам пользователя будет выглядеть не HKCU\... а HKU\SID\... Если смотреть его из службы. Если где не прав - Мэтры, поправьте. Единственное, что хочу сказать, что все заработало. Правда пришлось искать ф-цию для получения SID"a, но это мелочи.
Eraser © а Вам отдельное спасибо!


 
Anatoly Podgoretsky ©   (2010-12-10 09:14) [7]

> alex870  (09.12.2010 22:33:06)  [6]

Это неверно, очень неверно, CURRENT_USER для службы это тот кто установлен в
настройках и это вполне можешь быть ты.
Искать в HKU бесполезно, для этого сначала надо перезагрузиться под нужным
пользователем, а нафиг оно все это нужно, показать какой крутой или есть
реальная, а не придуманая цель?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2012.04.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.002 c
2-1324569664
brother
2011-12-22 20:01
2012.04.22
Закрытие файла...


15-1323982683
Германн
2011-12-16 00:58
2012.04.22
Странный глюк с поисковыми запросами.


2-1325179999
Антоха_М
2011-12-29 21:33
2012.04.22
Печать чеков из приложения Delphi


15-1324023715
sniknik
2011-12-16 12:21
2012.04.22
Безопастность SSL... есть ли вероятность обмана?


15-1324363262
oxffff
2011-12-20 10:41
2012.04.22
Может кто поделиться БД(продуктов и их иерархии) с фото





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский