Das folgende Beispiel zeigt, wie das Start-up von Windows aus der Registrierung ausgelesen und editiert werden kann.
Einen Eintrag zu löschen sollte keinen großen Aufwand darstellen, doch einen Eintrag zu erstellen, dazu muss der Name des Programms und der Wert des Registrierungsschlüssels eingetragen werden. Der sollte vor dem Eintrag bekannt sein, sonst starten die Programme nicht. Generell ist der Wert mit einer 1 zu definieren, doch kann es vorkommen, dass auch andere Werte verlangt werden.
uses ComCtrls, Registry
private
{ Private declarations }
procedure LoadScreen;
var
Form1: TForm1;
Reg: TRegistry;
Key1: string;
//
procedure TForm1.LoadScreen;
var Nams: TStringList;
i: Integer;
begin
Nams := TStringList.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey(Key1, False) then
begin
Reg.GetValueNames(Nams);
ListView1.Clear;
for i := 0 to Nams.Count - 1 do
begin
with ListView1.Items.Add do
begin
Caption := Nams[i];
SubItems.Add(Reg.ReadString(Nams[i]));
end;
end;
Reg.CloseKey;
end;
Nams.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Reg := TRegistry.Create;
Key1 := '\SOFTWARE\Microsoft\Windows\CurrentVersion\Run'; // Startup Pfad
LoadScreen;
end;
Eintrag löschen :
procedure TForm1.Button2Click(Sender: TObject);
var Nam: string;
begin
if ListView1.SelCount < 1 then
begin
MessageDlg('No item selected for deletion!!!', mtError, [mbOK], 0);
Exit;
end;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey(Key1, False) then
begin
Nam := ListView1.Selected.Caption;
Reg.DeleteValue(Nam);
Reg.CloseKey;
LoadScreen;
end
end;
Eintrag erstellen :
procedure TForm1.Button1Click(Sender: TObject);
begin
Edit1.Color := clWhite;
Edit1.Font.Color := clBlack;
Edit2.Color := clWhite;
Edit2.Font.Color := clBlack;
if Trim(Edit1.Text) = '' then // In die erste Box muss der Name rein
begin
MessageDlg('No name has been entered - cannot add/update!!!', mtError, [mbOK], 0);
Edit1.Color := clRed;
Edit1.Font.Color := clYellow;
Edit1.SetFocus;
Exit;
end;
if Trim(Edit2.Text) = '' then // In die zweite Box der Wert des Schlüssels
begin
MessageDlg('No value has been entered - cannot add/update!!!', mtError, [mbOK], 0);
Edit2.Color := clRed;
Edit2.Font.Color := clYellow;
Edit2.SetFocus;
Exit;
end;
if Reg.OpenKey(Key1, False) then
begin
Reg.WriteString(Trim(Edit1.Text), Trim(Edit2.Text));
Reg.CloseKey;
LoadScreen;
end;
end;
Keine Kommentare:
Kommentar veröffentlichen