#include <registry.hpp>
...
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TRegistry *reg = new TRegistry(KEY_ALL_ACCESS);
if (reg)
{
// выбираем корень
reg->RootKey = HKEY_LOCAL_MACHINE;
// открываем секцию
reg->OpenKey("Software\\Test\\",true);
// проверяем наличие ключа "testkey"
if (reg->KeyExists("testkey")==false)
{
Edit1->Text = "testkey не существует";
// записываем значение
reg->WriteString("testkey","http://forum.codenet.ru/");
}
else Edit1->Text = "testkey существует";
// закрываем секцию
reg->CloseKey();
}
delete reg;
}
Реестр
Код:
первый раз давлю кнопку - секция в реестре создается. ключ записывается. на форме сообщение "testkey не существует". Второй раз давлю кнопку, а он все равно проходит по той же ветки, как если бы ключ не существовал. Т.е. строка reg->KeyExists("testkey") всегда ложное значение возвращает. Как правильно проверить наличие ключа в реестре?
reg->KeyExists - таким образом ты пытаешься найти ключ, а тебе нужны значения ключа reg->ValueExists("testkey"), т.е.
Код:
#include <registry.hpp>
...
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TRegistry *reg = new TRegistry(KEY_ALL_ACCESS);
if (reg)
{
// выбираем корень
reg->RootKey = HKEY_LOCAL_MACHINE;
// открываем секцию
reg->OpenKey("Software\\Test\\",true);
// проверяем наличие ключа "testkey"
if (reg->ValueExists("testkey")==false)//СМОТРИ ЗДЕСЬ!!!!!!!!!!!!
{
Edit1->Text = "testkey не существует";
// записываем значение
reg->WriteString("testkey","http://forum.codenet.ru/");
}
else Edit1->Text = "testkey существует";
// закрываем секцию
reg->CloseKey();
}
delete reg;
}
...
void __fastcall TForm1::Button2Click(TObject *Sender)
{
TRegistry *reg = new TRegistry(KEY_ALL_ACCESS);
if (reg)
{
// выбираем корень
reg->RootKey = HKEY_LOCAL_MACHINE;
// открываем секцию
reg->OpenKey("Software\\Test\\",true);
// проверяем наличие ключа "testkey"
if (reg->ValueExists("testkey")==false)//СМОТРИ ЗДЕСЬ!!!!!!!!!!!!
{
Edit1->Text = "testkey не существует";
// записываем значение
reg->WriteString("testkey","http://forum.codenet.ru/");
}
else Edit1->Text = "testkey существует";
// закрываем секцию
reg->CloseKey();
}
delete reg;
}
необходимо проверить существует или нет ключ в реестре.
[/quote]
))))))