Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с реестром, проверка существования значения 
:(
    Опции темы
EDuard
Дата 11.11.2005, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 1.8.2005
Где: Синее нигде

Репутация: 2
Всего: 7



Привет!
Можно ли проверить существование определенного значения ключа реестра, если известен корневой каталог и сам ключ?


--------------------

PM MAIL WWW ICQ   Вверх
DemoCode
Дата 11.11.2005, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 890
Регистрация: 20.10.2005
Где: Россия

Репутация: 2
Всего: 41



Цитата
TRegistry.KeyExists

Determines if a specified key exists.

function KeyExists(const Key: String): Boolean;

Description

Call KeyExists to determine if a key of a specified name exists. Key is the name of the key for which to search.



--------------------
Жить стало лучше, жить стало веселей
© И.В. Сталин 
PM MAIL ICQ   Вверх
Albinos_x
Дата 11.11.2005, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 26
Всего: 108



вот гогда-то себе писал:
Код

...  
 uses  
  Registry...  
 ...  
 function ValueKeyExist(const Key:string; Value:string):boolean;  
 var regi : TRegistry;  
 PN:string;  
 begin  
 Result:=true;  
 Regi:=TRegistry.Create;  
 Regi.RootKey:=HKEY_LOCAL_MACHINE;  
 // проверяем наличие ключа  
 if regi.KeyExists(key) then  
 // если существует  
    begin  
    // открываем ключ  
    regi.OpenKey(key, false);  
    try  
    // записываем значение параметра  
    pn:=regi.ReadString(Value);  
    // если ничего не получилось(не строка или параметр пустой)  
    if pn='' then  
       Result:=false;  
    except  
     // если возникли ошибки (нет параметра)  
      Result:=false;  
      regi.CloseKey;  
      regi.free;  
      end;  
 // закрываем ключ  
 regi.CloseKey;  
 end  
 else  
 // если ключа нет  
  Result:=false;  
  // освобождаем память  
  regi.free;  
  end;  


функция возвращяет true если запись существует, в переменную Value записывается содержание параметра ключа.

Функция немного специализирована для моей программы, поэтому у неё есть недостатки при применении в общем случае:
1. Только для строковых параметров
2. только для раздела HKEY_LOCAL_MACHINE;

PS: указанные недостатки легко устраняются, думаю принцип работы функции понятен и кому будет необходимо, её подправит под себя..

ЗЫЫ: а вообще здесь кто-то уже задавал такой вопрос... можно было бы и поиском воспользоваться smile


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Voyager
Дата 11.11.2005, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 8.2.2005

Репутация: 2
Всего: 18



Как я понял, нужна функция ValueExists, вот пример чтения строкового значения (выдрано из моего модуля):
Код

function RegReadString(KeyName,SubKey:string):string;
var
  Registry: TRegistry;
begin
  Result:='';
  Registry := TRegistry.Create(KEY_READ);
  try
    Registry.RootKey := HKEY_CURRENT_USER;
    Registry.OpenKey(KeyName,False);
    If Registry.ValueExists(SubKey) then
      Result:=Registry.ReadString(SubKey);
  finally
    Registry.CloseKey;
    Registry.Free;
  end;
end;


Это сообщение отредактировал(а) Voyager - 11.11.2005, 23:43
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.2163 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.