![]() |
Brauche hilfe bei Registry*
hi leute, also ich erstell einen registry autostart eintrag wie folgt:
Delphi-Quellcode:
wie krieg ich den wieder gelöscht? hab schon etliches ausprobiert aber irgendwie löscht der mir den eintrag nicht...
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; pls help :) |
Re: Brauche hilfe bei Registry*
Hallo,
Zitat:
|
Re: Brauche hilfe bei Registry*
danke, ich werd das dann später ausprobieren, muss vorher noch bisschen was erledigen :)
|
Re: Brauche hilfe bei Registry*
Delphi-Quellcode:
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?
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; |
Re: Brauche hilfe bei Registry*
IMHO gibts auch eine Methode DeleteValue. Kann aber grad nicht nachschauen.
|
Re: Brauche hilfe bei Registry*
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; |
DP-Maintenance
Dieses Thema wurde von "mkinzler" von "Programmieren allgemein" nach "Windows API / MS.NET Framework API" verschoben.
Zugriff aus Delphi |
Re: Brauche hilfe bei Registry*
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz