this slowpoke moves

Startup Manager

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

Beliebte Posts

Translate