Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.09.20;
Скачать: CL | DM;

Вниз

HKEY_CURRENT_USER и юзеры   Найти похожие ветки 

 
Цукор5   (2009-07-15 15:30) [0]

Так вот, если я размещу здесь свою "ветку" с некоторыми значениями будет ли любой пользователь видеть эти значения ?
Рассмотрим случаи :
1) на ПК несколько пользователей. Какой-то из них залогинился. Увидит ли он "ветку" со значениями ?
2) ПК загрузился до момента ввода юзера(ничего не вводим). Стартует служба и обращается к реестру в мою "ветку". Что будет ?

P.S. Долго проверять. Поэтому и спашиваю. Заранее спасибо!!!


 
Palladin ©   (2009-07-15 15:31) [1]


> Так вот, если я размещу здесь свою "ветку" с некоторыми
> значениями будет ли любой пользователь видеть эти значения
> ?

Нет конечно. С чего ты взял?

1) Нет
2) В какую ТВОЮ ветку? Для него ЕГО веткой будет куст учетной записи под которой он стартовал.


 
Anatoly Podgoretsky ©   (2009-07-15 15:37) [2]

Что значит долго проверять, пару минут потратить, чем долго ждать ответа в форуме, а ведь могут и послать.


 
Игорь Шевченко ©   (2009-07-15 15:39) [3]

у задач от планировщика другой current_user, а именно .DEFAULT


 
Anatoly Podgoretsky ©   (2009-07-15 15:45) [4]

> Игорь Шевченко  (15.07.2009 15:39:03)  [3]

У задач от планировщика можно выбрать пользователя при создании задания.


 
Цукор5   (2009-07-15 15:51) [5]

Спасибо!


 
Цукор5   (2009-07-15 17:30) [6]

Пардон...и последний вопрос.
Соответственно, если я буду наполнять hkey_local_machine то подобных проблем не будет ? Т.е. все юзры будут видеть мою ветку ?


 
TIF ©   (2009-07-15 21:13) [7]

> Соответственно, если я буду наполнять hkey_local_machine
> то подобных проблем не будет ? Т.е. все юзры будут видеть
> мою ветку ?

Нет. Но самая главная проблема - твоя программа должна быть (просто обязана!) запущена с правами администратора

Самая главная ошибка программеров под XP...

PS: лучше в данном случае сохранять не в реестре, а в специальной общей папке для всех пользователей


 
Anatoly Podgoretsky ©   (2009-07-15 22:30) [8]

> TIF  (15.07.2009 21:13:07)  [7]

Чтобы видеть - не требуется.


 
Цукор5   (2009-07-16 00:14) [9]


> PS: лучше в данном случае сохранять не в реестре, а в специальной
> общей папке для всех пользователей


О какой специальной папке идет речь (и как туда программно добраться)?


 
TIF ©   (2009-07-16 03:45) [10]

> Anatoly Podgoretsky ©   (15.07.09 22:30) [8]
> > TIF  (15.07.2009 21:13:07)  [7]Чтобы видеть - не требуется.
>

Что правда, то правда :) Исправляюсь. Прочитать из ветки HKLM можно без прав администратора, но вот записать туда что-то - только с правами...

> О какой специальной папке идет речь (и как туда программно
> добраться)?

Ну, например,
CSIDL_COMMON_APPDATA
("Каталог файловой системы, служащий общим репозиторием данных,         специфичных для приложения для ВСЕХ пользователей")
Windows Vista: C:\ProgramData
Windows XP: C:\Documents and Settings\All Users\Application Data
где C:\ соответственно системный диск

Запоминать эти пути НЕ надо, жёстко задавать их в своей программе НЕ надо, так как они могут оказаться другими, например, если система установлена на диске J

Их надо получать программно :) Пути я дал лишь для того, чтобы туда заглянуть и посмотреть внутреннее устройство (у каждой программы своя папка)

function GetCSIDLFolder(CSIDL: Byte): String;
begin
 SetLength(Result, MAX_PATH);
 if not SHGetSpecialFolderPath(0, PChar(Result), CSIDL, false)
   then Result:="";
end;


Соответственно вызываем
GetCSIDLFolder(CSIDL_APPDATA);
и получаем путь к этой папке

Подробности - в MSDN:
http://msdn.microsoft.com/en-us/library/bb762494(VS.85).aspx

PS:
Начиная с Windows Vista рекомендуется использовать Known Folders, но этот момент я затрагивать не буду, потому что в висте (и в Windows 7) есть обратная совместимость, поэтому и определение через CSIDL там прекрасно сработает :)

PPS: дополнение для любознательных
индивидуальная папка конкретного пользователя - CSIDL_APPDATA
Windows Vista: C:\Users\Пользователь\AppData\Roaming
Windows XP: C:\Documents and Settings\Пользователь\Application Data

Ещё в CSIDL_APPDATA можно попасть написав в адресной строке любой открытой папки %appdata% и нажав Enter ;-)


 
TIF ©   (2009-07-16 03:47) [11]

> Соответственно вызываем GetCSIDLFolder(CSIDL_APPDATA);

В этом примере надо так:
GetCSIDLFolder(CSIDL_COMMON_APPDATA);

COMMON - "общий", то есть общая для всех папка

В PPS предыдущего сообщения описана разница :)



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

Текущий архив: 2009.09.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
6-1206897457
prostoi
2008-03-30 21:17
2009.09.20
Proxy


15-1248413989
Художник
2009-07-24 09:39
2009.09.20
Функции в fpc


1-1215965666
dmitry_12_08_73
2008-07-13 20:14
2009.09.20
Диалоговое окно не должно перекрываться другими окнами


15-1248335496
oxffff
2009-07-23 11:51
2009.09.20
Artificial brain ten years away


15-1248294604
Юрий
2009-07-23 00:30
2009.09.20
С днем рождения ! 23 июля 2009 четверг