Backup - работа с реестром - восстановить настройки пользователя

karp2005
Дата: 11.10.2006 21:31:08
Задача: есть бэкап некоторой ветки из реестра нескольких пользователей (в двоичном виде, сохранённый RegSaveKey. Для каждого польлователя свой юзерсеттингс.dat). Нужно каждому пользователю вернуть эти настройки обратно. Причём это нужно сделать зайдя один раз из под Администратора (т.е. каждый пользователь для возвращения своих настроек не должен заходить в системму и запускать некоторое приложение. Т.е. просто скопировать эту ветку из юзерсеттингс в некоторую ветку реестра этого пользователя (не подключить а именно скопировать, но меня интересует не процесс подключения Hive и копирования, ветки, собственно сам вопрос ниже).

Вопрос:
На сколько я понимаю, мне нужно получить ID всех пользователей моей системмы, а потом по этому ID получить соответствующую ветку в HKEY_USERS\ветка? (для того чтобы выполнить условие восстановления настроек всех пользователей не заходя под каждым в отдельности).

Если можно пример (или куда читать).
Спасибо.
mv
Дата: 11.10.2006 22:48:48

karp2005


Жесть.
По-моему, не простое дело.
....
А как у тебя дефолтное состояние юзеров возникает, когда первый раз
программку запускаешь?
....
Может, тогда проще .ini - файлом воспользоваться? Пусть в нем для каждого
юзера будет ключ, в котором написано, что текущее стсотяние нужно брать из
реестра. Открываешь файл, ищешь себя и если не нашел, то сам удаляешь свою
ветку реестра HKEY_CURRENT_USER\Software\Моя._программа со старыми
натройками.
Потом формируешь дефолтные значения, и делаешь пометку в Ini - файле.

Т.е., чтобы сбросить все настройки всех пользователей, будет достаточно
очистить/удалить этот ini - файл. (Ну, или, например, воспользоваться
глобальной веткой реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Пользователи_Моей_Программы, если не любишь
ini - файлы).


Posted via ActualForum NNTP Server 1.3

mv
Дата: 11.10.2006 22:48:55

karp2005


Жесть.
По-моему, не простое дело.
....
А как у тебя дефолтное состояние юзеров возникает, когда первый раз
программку запускаешь?
....
Может, тогда проще .ini - файлом воспользоваться? Пусть в нем для каждого
юзера будет ключ, в котором написано, что текущее стсотяние нужно брать из
реестра. Открываешь файл, ищешь себя и если не нашел, то сам удаляешь свою
ветку реестра HKEY_CURRENT_USER\Software\Моя._программа со старыми
натройками.
Потом формируешь дефолтные значения, и делаешь пометку в Ini - файле.

Т.е., чтобы сбросить все настройки всех пользователей, будет достаточно
очистить/удалить этот ini - файл. (Ну, или, например, воспользоваться
глобальной веткой реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Пользователи_Моей_Программы, если не любишь
ini - файлы).



Posted via ActualForum NNTP Server 1.3

karp2005
Дата: 12.10.2006 00:39:54
Вы не правильно поняли суть проблеммы. Мне нужно производить именно восстановление !СИСТЕМНЫХ! настроек Windows а не настроек моего приложения. Эти настройки я извлекать научился, теперь проблемма как бы их вставить назад все оптом из ветки реестра, сохранённой способом, описанным выше.

В HKEY_USERS есть такие ветки "S-1-5-18" (каждая из них и есть подмонтированый нтюзер.дат) вот мне нужно определить какая ветка принадлежит какому пользователю.
Спасибо.
mv
Дата: 12.10.2006 01:36:09

Help: "Win 32 Developer's References"

LookupAccountName
....
SID
....
How to Convert a Binary SID to Textual Form


Posted via ActualForum NNTP Server 1.3

karp2005
Дата: 12.10.2006 16:26:56
Cпасибо. Это как раз то, что мне и требовалось.
А тут
http://subscribe.ru/archive/comp.soft.prog.delphint/200207/29175902.html более подробная информация, примеры использования основных API функций для работы с SID из под дельфи (если кого-то ещё заинтересует этот вопрос).

Вопрос решён, всем спасибо :о)
Petro123
Дата: 12.10.2006 16:34:02
karp2005
Вы не правильно поняли суть проблеммы. Мне нужно производить именно восстановление !СИСТЕМНЫХ! настроек Windows а не настроек моего приложения.

зачем это понадобилось?
Т.е. если я занёс новую иконку на панель быстрого запуска, то ты ЭТО считаешь надо вернуть админом?