AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Brauche hilfe bei Registry*

Ein Thema von 0x33 · begonnen am 20. Mai 2009 · letzter Beitrag vom 23. Mai 2009
Antwort Antwort
0x33

Registriert seit: 20. Mai 2009
4 Beiträge
 
#1

Brauche hilfe bei Registry*

  Alt 20. Mai 2009, 12:25
hi leute, also ich erstell einen registry autostart eintrag wie folgt:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
regist:tregistry;
begin
 regist := TRegistry.create;
with regist do
try
  rootkey := HKEY_LOCAL_MACHINE;
  OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\Run', true);
  writestring('123.exe','C:\WINDOWS\system32\123.exe');
  closekey;
finally
  free;
end;
end;
wie krieg ich den wieder gelöscht? hab schon etliches ausprobiert aber irgendwie löscht der mir den eintrag nicht...
pls help
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: Brauche hilfe bei Registry*

  Alt 20. Mai 2009, 12:33
Hallo,

Zitat von Delphihilfe:
Delphi-Quellcode:
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; // Abschnitt in Registrierung
      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;
  Mit Zitat antworten Zitat
0x33

Registriert seit: 20. Mai 2009
4 Beiträge
 
#3

Re: Brauche hilfe bei Registry*

  Alt 20. Mai 2009, 13:18
danke, ich werd das dann später ausprobieren, muss vorher noch bisschen was erledigen
  Mit Zitat antworten Zitat
0x33

Registriert seit: 20. Mai 2009
4 Beiträge
 
#4

Re: Brauche hilfe bei Registry*

  Alt 22. Mai 2009, 16:32
Delphi-Quellcode:
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; // Abschnitt in Registrierung
      if not Reg.OpenKey(Edit1.Text,False) then //-key wird geöffnet in meinem fall \SOFTWARE\Microsoft\Windows\CurrentVersion\Run
        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;
ok, also öhm mit der prozedur wird ja der key geöffnet und alle einträge per schleife ausgegeben aber am schluss wird doch der komplette run schlüssel gelöscht, ich will ja aber nur einen schlüssel im run löschen wie kann ich das machen?
  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#5

Re: Brauche hilfe bei Registry*

  Alt 22. Mai 2009, 16:45
IMHO gibts auch eine Methode DeleteValue. Kann aber grad nicht nachschauen.
Fridolin Walther
  Mit Zitat antworten Zitat
0x33

Registriert seit: 20. Mai 2009
4 Beiträge
 
#6

Re: Brauche hilfe bei Registry*

  Alt 22. Mai 2009, 18:50
hab jetzt ne lösung, für die die noch sowas suchen:

Delphi-Quellcode:
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  with Reg do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
    if ValueExists('123.exe') then DeleteValue('123.exe');
    CloseKey;
    Free;
  end;
end;
  Mit Zitat antworten Zitat
22. Mai 2009, 19:00
Dieses Thema wurde von "mkinzler" von "Programmieren allgemein" nach "Windows API / MS.NET Framework API" verschoben.
Zugriff aus Delphi
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Brauche hilfe bei Registry*

  Alt 23. Mai 2009, 00:17
Ich hätte da noch einen kleinen Verbesserungsvorschlag:

Delphi-Quellcode:
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  try // Absichern, dass reg auch wieder freigegeben wird
    with Reg do
    begin
      RootKey := HKEY_LOCAL_MACHINE;
      // Wenn der Key nicht geöffnet werden kann gibt es nichts weiter zu tun
      // Open kann, z.B., auf Grund fehlender Rechte fehlschlagen
      // Wenn nicht geschrieben werden darf, nutzt auch der Parameter true nichts
      if not OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True) then exit;
      try // Sicherstellen, dass der Key wieder geschlossen wird
        if ValueExists('123.exe') then DeleteValue('123.exe');
      finally
        CloseKey;
      end;
    end;
  finally
    Free;
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz