|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Проблема с реестром
Пишу службу и пытаюсь прочитать настройки из реестра
Код:
var Registry: TRegistry; Registry := TRegistry.Create; Registry.RootKey := hkey_current_user; Registry.OpenKey('software\BTS\LOGIN',true); DM.OraSession1.server :=Registry.ReadString('SERVER'); DM.OraSession1.username :=Registry.ReadString('USERNAME'); DM.OraSession1.Password := Registry.ReadString('PASSWORD'); DM.OraSession1.Schema := Registry.ReadString('SCHEMA'); DM.ForMonitor.server :=Registry.ReadString('SERVER'); DM.ForMonitor.username :=Registry.ReadString('USERNAME'); DM.ForMonitor.Password := Registry.ReadString('PASSWORD'); DM.ForMonitor.Schema := Registry.ReadString('SCHEMA'); Registry.CloseKey; на выходе пусто, хотя данные естественно есть. Может есть какая-то особенность работы с реестром если пишешь службу? Последний раз редактировалось Admin, Сегодня в 10:32. |
#2
|
||||
|
||||
Цитата:
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
что значит "на выходе пусто" ?
Поживу - увижу, Доживу - узнаю, Выживу - учту. [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
|
#4
|
||||
|
||||
NumLock уже дал правильный ответ.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
|||
|
|||
Не, ну служба тоже под юзером запускается... только вот под каким????????????????????????????????????????????
ЗЫ. Я знаю под каким пользователем запускается служба по умолчанию. И что пользователя можно поменять - тоже знаю. ЗЗЫ. ЗЫ было для особо одаренных. |
#6
|
|||
|
|||
Службы запускаются от имени локальной системы, еще до входа пользователя. Поэтому они не знают, какой user is current
|
#7
|
|||
|
|||
А вот фигу вам. Если указан пользователь для конкретной службы, то она запускается под указанным пользователем вне зависимости от того залогинен таковой или нет.
И, соответственно, имеет доступ к правильной ветке current_user. Вся проблема как раз в том, что у залогиненного пользователя current_user свой, у службы - свой. Соответсвенно, выход только один - писать все в local_machine или файл для all_users (последнее - с учетеом идеологии XP/Vista/7, больше 2х последних, т.к. под XP еще можно было прямо в папку программы писать). Последний раз редактировалось lmikle, 20.06.2012 в 00:13. |