Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.03.24;
Скачать: CL | DM;

Вниз

Удаление ключа в реестре   Найти похожие ветки 

 
R   (2003-03-12 01:37) [0]

Мастера ниже приведен код который в зависимости от
состояния чекета в CheckBox1 создает ключ автозапуска программы или удаляет его, где ошибка, почему ключ создается но не
удаляется?

var
REG:TRegistry;
begin


//Автозапуск

REG:=nil;
try
REG:=TRegistry.create;
REG.RootKey:=HKEY_CURRENT_USER;

If CheckBox1.Checked Then begin
If REG.OpenKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true) Then begin
REG.WriteString("Program1",Application.ExeName);

end
Else ----------------------("Ошибка использования системного реестра.");
end
Else begin
If REG.OpenKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run",true) Then begin
REG.DeleteKey("Program1");
end;
end;
finally
REG.CloseKey;
REG.Free;
end;


 
R   (2003-03-12 04:53) [1]

????????????????????????????????????????????????????
| |
| ??????????????? |
| |
????????????????????????????????????????????????????


 
Anatoly Podgoretsky ©   (2003-03-12 08:03) [2]

Потому что "Program1" не ключ!


 
R   (2003-03-12 08:45) [3]

Подскажите как сделать правильно.


 
Cobalt ©   (2003-03-12 08:58) [4]

АП имел в виду, что это не ключ, а параметр(Value). Для его удаления надо записать в него nil (если не ошибаюсь, проверь по документации)


 
sask ©   (2003-03-12 09:17) [5]

Reg.DeleteValue("Program1")


 
Anatoly Podgoretsky ©   (2003-03-12 09:24) [6]

R (12.03.03 01:37)
R (12.03.03 08:45)
Вот этот вопрос сразу и надо было задавать, я бы не стал тогда тратиь время на объяснение почему не работает.
С твоей же стороны достаточно было после объяснения посмотреть в справке, а какие еще есть удаления.


 
R   (2003-03-12 09:35) [7]

1.Если честно что-то я окнчательно запутался
вот пример из справки Anatoly Podgoretsky © я его смотрел
раз сто прежде чем идти на форум
procedure TForm1.Button1Click(Sender: TObject);
var
Reg: TRegistry;
Val:TStringList;
I:Integer;
begin
Reg:=TRegistry.Create;
try
Val:=TStringList.Create;
try
Reg.RootKey:=HKey_Local_Machine; // Section to look for within the registry
if not Reg.OpenKey(Edit1.Text,False) then
ShowMessage("Error opening key")
else
begin
Reg.GetValueNames(Val);

for I:=0 to Val.Count-1 do
begin
ShowMessage(Edit1.Text + Chr(13) +
"has an Entry Called "+Val.Strings[I]+Chr(13)+
"With a Value of "+Reg.ReadString(Val.Strings[I]));
end;
if MessageDlg("Ok to delete the key and lose all these values?"
,Mtinformation,[mbYes,mbNo],0)=mryes then
Reg.DeleteKey(Edit1.Text);

end;
finally
Val.Free;
end;
finally
Reg.Free;
end;
end;



2. sask ©
Reg.DeleteValue("Program1") не удаляет.



 
Sheriff   (2003-03-12 09:42) [8]

var Reg: TRegIniFile;
begin
Reg:=TRegIniFile.Create("SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
try
if StartWithWindows.Checked then Reg.WriteString("","MyProgram",Application.ExeName)
else Reg.DeleteKey("","MyProgram");
finally Reg.Free; end;
end;


 
R   (2003-03-12 09:57) [9]

Спасибо всем кто помог.
Вот это ошибка:
"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"

А это нет
"\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"



Страницы: 1 вся ветка

Текущий архив: 2003.03.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
3-76292
studentas
2003-03-04 12:43
2003.03.24
SQL?


4-76736
xZero
2003-01-28 01:11
2003.03.24
Надо поймать клик


8-76528
Konstantin
2002-12-07 15:16
2003.03.24
media в отдельном потоке?


3-76322
SerKom
2003-03-05 13:58
2003.03.24
Как увидить значения по умольчанию в Db-контралах приложения, не


3-76347
Pat
2003-03-05 21:38
2003.03.24
Ссылочная целостность