![]() |
Re: Autostart-Registry Eintrag löschen??
Hallo me2u!
Du hast ím Grunde zwei Fehler eingebaut: 1. Du gehst davon aus, dass Du einen Key löschen willst, möchtest im Endeffekt aber einen Value loswerden. Dazu mußt Du dann die Methode DeleteValue der Klasse TRegistry verwenden. 2. Du beachtest beim Löschen nicht, dass der Löschbefehl relativ zum geöffneten Key arbeitet. Und noch ein Hinweis: Überprüfe niemals einen Boolean durch Vergleich mit True oder False. Begründungen hierfür findest DU über die Forensuche zuhauf. Hier ein Codesnippet zum reingucken. Wenn Du an meinem Code etwas nicht verstehst, bitte nachfragen.
Delphi-Quellcode:
Hope it helps
procedure TForm1.Button2Click(Sender: TObject);
var Reg : TRegistry; begin Reg := TRegistry.Create; try Reg.RootKey := HKEY_CURRENT_USER; if Reg.OpenKey ('software\Microsoft\Windows\Currentversion\Run', False) then begin try if not Reg.DeleteValue('GIS') then begin showmessage ('Value konnte nicht gelöscht werden'); end; finally Reg.CloseKey; end; end else begin showmessage ('Key konnte nicht geöffnet werden!'); end; finally Reg.Free; end; end; onlinekater |
Re: Autostart-Registry Eintrag löschen??
Und noch eine Verbesserung: Statt einen eigenen Text in den ShowMessages ausgeben liber gleich den Fehlertext von Windows, dann weiß man auch, warum der Fehler aufgetreten ist:
Delphi-Quellcode:
ShowMessage(SysErrorMessage(GetLastError));
|
Re: Autostart-Registry Eintrag löschen??
Schlanker sieht's so aus:
Delphi-Quellcode:
Ungetestet, müsste aber funktionieren.
procedure TForm1.Button2Click(Sender: TObject);
var Reg:TRegistry; begin Reg:=TRegistry.Create; try Reg.RootKey:=HKEY_CURRENT_USER; //bzw HKEY_LOCAL_MACHINE für alle User if Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run',False) then try if not Reg.DeleteValue('GIS') then Showmessage(SysErrorMessage(GetLastError)); finally Reg.CloseKey; end else Showmessage(SysErrorMessage(GetLastError)); finally Reg.Free; end; end; |
Re: Autostart-Registry Eintrag löschen??
P.E.R.F.E.K.T
ich danke euch für eure Hilfe.. @onlinekater: code ist soweit logisch.. man hätte halt draufkommen müssen und das mit dem Boolean durch Vgl überprüfen war mir neu.. aber danke, jetzt weis ichs *grinz* |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:36 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