Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

TRegistry в С++Builder

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
Sleep



Зарегистрирован: 06.09.2004
Сообщения: 1

СообщениеДобавлено: Пн Сен 06 2004 08:49    Заголовок сообщения: TRegistry в С++Builder Ответить с цитатой

Подскажите, как сохранить ключ с помощью SaveKey
если сделать вот так:
TRegistry &reg = *new TRegistry();
reg.RootKey = HKEY_LOCAL_MACHINE;
reg.SaveKey("SOFTWARE\\Adobe", "C:\\new.reg");
delete ®
То файл создается но пустой.
Я посмотрел API RegSaveKey, нужно установить SE_BACKUP_NAME... видимо тоже самое и для TRegistry
Добавил:
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
LUID luid;

if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
ShowMessage("OpenProcessToken");

LookupPrivilegeValue(NULL, SE_BACKUP_NAME,
&luid);

tkp.PrivilegeCount = 1;
tkp.Privileges[0].Luid = luid;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

AdjustTokenPrivileges(hToken, FALSE, &tkp,
sizeof(TOKEN_PRIVILEGES),NULL, NULL );

if (GetLastError() != ERROR_SUCCESS)
ShowMessage("AdjustTokenPrivileges");

Ключ сохранился, но в совершенно дикой кодировке
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
AlexDark
Гость





СообщениеДобавлено: Пн Сен 06 2004 21:25    Заголовок сообщения: Ответить с цитатой

Все гораздо проще: (пример)

Открываем на чтение ключ реестра

const char *RegKey="Software\\Relata\\Flur";
TRegistry *reg=new TRegistry;
if(!reg->OpenKey(RegKey,false))
{
ipadres="";
FWhorun->ShowModal(); // если неудалось открыть, открываем
// окно сохранения ключа.
}
else {
ipadres=reg->ReadString("ipadres"); // если удало считать, то читаем
}
delete reg;

Сохранение ключа в реестр:

const char *RegKey1="Software\\Relata\\Flur";
TRegistry *reg1=new TRegistry;
reg1->OpenKey(RegKey1,true);
reg1->WriteString("ipadres",Edit1->Text);
delete reg1;

Вот и все.
Вернуться к началу
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...