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

Ваш аккаунт

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

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

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

Ошибка при работе с реестром

344
01 сентября 2005 года
Delpher
493 / / 14.08.2005
Не могу понять в чем ошибка.Вот процедура:

procedure TForm1.ListBox1Click(Sender: TObject);
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
if reg.OpenKey(Check,false) then//все время = false
.......
reg.Free;
end;
//-----------------
function Check:string;
begin
for i := 0 to p.Count-1 do
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
if reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\'+p,false) then
if reg.ValueExists('UninstallString') then
if Form1.ListBox1.Items.Strings[Form1.ListBox1.ItemIndex]=reg.ReadString('DisplayName') then
begin
result:='SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\'+p;
exit;
end;
reg.Free;
end;
end;
//-------------------------
if reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',false) then
reg.GetKeyNames(p);
2.1K
05 сентября 2005 года
Kai
37 / / 30.05.2003
Цитата:
To Delpher



А ты уверен, что ф-я Check возвращает строку?

344
06 сентября 2005 года
Delpher
493 / / 14.08.2005
Цитата:
Originally posted by Kai
А ты уверен, что ф-я Check возвращает строку?



уверен, проверял.

Переделал процедуру - начало работать,
почему незнаю может кто поскажет
[COLOR=blue]
procedure TForm1.ListBox1Click(Sender: TObject);
[COLOR=red]var s:string;[/COLOR]
begin
reg:=TRegistry.Create;
reg.RootKey:=HKEY_LOCAL_MACHINE;
[COLOR=red]s:=Check;[/COLOR]
if reg.OpenKey([COLOR=red]s[/COLOR],false) then
.......
reg.Free;
end;
[/COLOR]

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог