Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Autostart-Registry Eintrag löschen?? (https://www.delphipraxis.net/91545-autostart-registry-eintrag-loeschen.html)

me2u 6. Mai 2007 20:53


Autostart-Registry Eintrag löschen??
 
Hallo,

ich will in mein Programm die Möglichkeit mit einbinden, ob es beim Start von Windows automatisch gestartet werden soll oder nicht. Hierzu schreibe ich den entsprechenden Schlüssel in entweder HKEY_CURRENT_USER oder HKEY_LOCAL_MACHINE /Software/Microsoft/.../Run.. soweit sogut..

Mein Problem ist nicht das reinschreiben sondern das löschen. Kann es sein, dass mir dazu irgendwelche Rechte fehlen?? Die Funktion liefert mir immer den Wert FALSE, also löschen nicht möglich..

Weis jemand wie ich das hinbekomme?? Irgendwie muss das doch möglich sein, "normale" Programme dürfen das doch auch :?:


MfG & besten dank

fLaSh11 6. Mai 2007 20:55

Re: Autostart-Registry Eintrag löschen??
 
Vielleicht wäre es noch sinnvoll den Code deines Löschvorgangs hier zu posten...

me2u 7. Mai 2007 09:16

Re: Autostart-Registry Eintrag löschen??
 
hmm.. ok.. da könnte was dran sein...

Delphi-Quellcode:
 
reg:= TRegistry.Create;
  try
    reg.RootKey:= HKEY_CURRENT_USER;

    if reg.OpenKey('software\Microsoft\Windows\Currentversion\Run',True) then begin
        if reg.DeleteKey('software\Microsoft\Windows\Currentversion\Run\GIS')= False then begin
          ShowMessage('Key konnte nicht gelöscht werden');
        end;
        reg.CloseKey;
    end
    else ShowMessage('Key konnte nicht geöffnet werden')
  finally
    reg.Free;
  end
so sollte es eigentlich gehn.. denk ich..

an dem "reg.OpenKey" liegt es denk ich nicht, weil wenn ich diese Zeile rausnehm passiert immernoch das selbe...

danke schonmal

SirThornberry 7. Mai 2007 09:19

Re: Autostart-Registry Eintrag löschen??
 
zuerst solltest du bei OpenKey das True weg nehmen und dann bezweifel ich das du wirklich einen Key angelegt hast du den du löschen willst :wink: Handelt es sich vielleicht doch eher um einen Value?

me2u 7. Mai 2007 09:32

Re: Autostart-Registry Eintrag löschen??
 
ehmmm.. dumme frage: wo ist der unterschied zw. value und key... ich möchte mein son ding in der reg löschen, das eben den Namen (GIS) hat, als typ steht da REG_SZ und nen Wert, also den Pfad.. und dieses gesamte dings möchte ich löschen.. also dass es dann eben nicht mehr startet... erstellen tu ich es mit
Delphi-Quellcode:
      reg.Writestring('GIS', Application.ExeName);
sry für meine unkenntniss :stupid:


das TRUE kann ich nicht weglassen (nicht genügend wirkliche parameter)


//EDIT: fehler ausgebessert (letzte zeile: statt False muss True stehn)

Luckie 7. Mai 2007 09:58

Re: Autostart-Registry Eintrag löschen??
 
Delphi-Quellcode:
ShowMessage('Key konnte nicht gelöscht werden');
Ist nicht sehr hilfreich, weil es nichts über den Grund aussagt. Was sagt denn SysErrorMessage(GetLastError) an dieser Stelle?

SirThornberry 7. Mai 2007 10:03

Re: Autostart-Registry Eintrag löschen??
 
mit
Zitat:

zuerst solltest du bei OpenKey das True weg nehmen
meinte ich das da False hinn sollte. Denn wenn du etwas löschen willst stört es ja nicht wenns da ist. Mit deinem True würdest du aber den Pfad anlegen obwohl du ihn gar nicht benötigst.

Der unterschied zwischen Key und Value ist eigentlich einfach. Key's sind das was dir im Registryeditor als Ordner dargestellt wird. Und Values sind das was in den "Ordnern" liegt

me2u 7. Mai 2007 17:22

Re: Autostart-Registry Eintrag löschen??
 
alsoooo...

auf FALSE setzen bringt leider auch nix und als SysError sagt er nur ''Vorgang wurde erfolgreich beendet'' warum auch immer... und du hattest recht, ich will ein Value löschen..

MfG

me2u 8. Mai 2007 18:44

Re: Autostart-Registry Eintrag löschen??
 
hmmmm... mal anders gefragt, wie würdet ihr sowas machen??
kann mir mal jemand seien vorschlag/code posten?? oder kann es an meinem betriebssystem (win xp home) liegen??

thx

SirTwist 9. Mai 2007 06:54

Re: Autostart-Registry Eintrag löschen??
 
Hi,

wenn Du das hier schreibst:
Delphi-Quellcode:
if reg.OpenKey('software\Microsoft\Windows\Currentversion\Run',True) then begin
        if reg.DeleteKey('software\Microsoft\Windows\Currentversion\Run\GIS')= False then begin
Dann will er den Key
Code:
\software\Microsoft\Windows\Currentversion\Run\software\Microsoft\Windows\Currentversion\Run\GIS
löschen. Ich glaube nicht, dass es den gibt, oder?

Außerdem willst Du einen Value löschen und keinen Key. Also mach Dein reg.openKey (aber mit False als Parameter) und dann lösch den Value "GIS". Die Funktion musst Du Dir aus der Onlinehilfe suchen, ich hab hier grad kein Delphi zur Verfügung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 Uhr.
Seite 1 von 2  1 2      

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