Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Реестр

10K
05 октября 2007 года
Archy_74
51 / / 13.12.2006
необходимо проверить существует или нет ключ в реестре.
Код:
#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") всегда ложное значение возвращает. Как правильно проверить наличие ключа в реестре?
3.7K
05 октября 2007 года
_lobster_
115 / / 10.04.2005
Так а ты что ищешь ветку или конкретное имя со значением?
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;
}
92
05 октября 2007 года
Тень Пса
2.2K / / 19.10.2006
[quote=Archy_47]
необходимо проверить существует или нет ключ в реестре.
[/quote]
))))))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог