Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Реестр [D7, XP]


lobach ©   (2006-11-02 16:46:00) 

Подскажите как проверить существование ключа или раздела реестра


RASkov   (2006-11-03 00:23:00) [1]

KeyExists
ValueExists
Registry+F1
А проверить можно и не открывая
if Reg.KeyExists('SOfTWARe\123') then
ShowMessage('Yes')
else ShowMessage('No');


RASkov   (2006-11-03 00:15:00) [2]

> Reg.OpenKey('SOFTWARE\123', True);
> if Reg.KeyExists('SOFTWARE\123')= True then

А так, помоему, мало смысла делать. OpenKey со 2 параметром True создаст ключ
Лучше так:

if Reg.OpenKey('\SOFTWARE\123', True) then begin
Reg.WriteString('MyApp','"' + ParamStr(0) + '"');
Reg.CloseKey;
end;


Anatoly Podgoretsky   (2006-11-02 20:56:00) [3]

Осталось узнать, что же ты тогда ключом называешь?


Anatoly Podgoretsky   (2006-11-02 20:54:00) [4]


> Хочу проверить существование раздела HKEY_LOCAL_MACHINE\'SOFTWARE\123:

Это не раздел, а ключ - проверь перевод слова KeyExists


lobach   (2006-11-02 20:05:00) [5]


> Percent

Извини брат, мозги уже не варят..
Reg.OpenKey('SOFTWARE', True);
if Reg.KeyExists('123')= True then

Теперь пашет...
Надо бы мне поспать, а то время много..


Percent   (2006-11-02 20:03:00) [6]

Reg.OpenKey('SOFTWARE\123', True); - убей эту строку... об стенку.


Percent   (2006-11-02 20:00:00) [7]

Reg.OpenKey('SOFTWARE\123', True);
if Reg.KeyExists('SOFTWARE\123')= True then


Аффтар, ну ты когда думать будешь?
Ты ищешь раздел 'SOFTWARE\123' в разделе 'SOFTWARE\123'.
Он у тебя там есть?
'SOFTWARE\123\SOFTWARE\123'


lobach   (2006-11-02 19:53:00) [8]

Пример.
Хочу проверить существование раздела HKEY_LOCAL_MACHINE\'SOFTWARE\123:

begin
Reg:= TRegistry.Create;
Reg.RootKey:= HKEY_LOCAL_MACHINE;
Reg.OpenKey('SOFTWARE\123', True);
if Reg.KeyExists('SOFTWARE\123')= True then
Showmessage('Раздел существует')
else
Showmessage('Раздел не существует');
Reg.CloseKey;
Reg.Free;
end;

Пишет 'Раздел не существует' хотя он стопудово есть. Что ни так?


Ketmar   (2006-11-02 17:47:00) [9]

>[4] lobach(c) 2-Nov-2006, 17:44
>Пробовал открыть раздел, которого не существует, но даже
>ошибки не увидел...
наверное потому, что показать её не удосужился?


lobach   (2006-11-02 17:44:00) [10]


> Открыть попытаться?

Пробовал открыть раздел, которого не существует, но даже ошибки не увидел...


lobach   (2006-11-02 17:02:00) [11]


> они всегда
> существуют

С чего бы это?


Anatoly Podgoretsky   (2006-11-02 16:54:00) [12]

> lobach  (02.11.2006 16:46:00)  [0]

что такое ключ понятно, а вот разделы узнавать не требуется они всегда
существуют. KeyExists


DVM   (2006-11-02 16:51:00) [13]

Открыть попытаться?


Наверх

Титульная страница Поиск, карта сайта Написать письмо