Autor Beitrag
ex4ct
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67


Delphi 7
BeitragVerfasst: Mo 17.07.06 19:50 
Hallo, ich versuche ein exe Programm aus dem Autostart zu löschen aber ohne erfolg.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
RG:=TRegistry.Create;
RG.RootKey:=HKEY_LOCAL_MACHINE;
RG.OpenKey ('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', FALSE);
RG.DeleteKey ('programm.exe');
RG.Destroy;


Das klappt aber nicht.
Ich füge mein programm so in den Autostart
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
RG:=TRegistry.Create; // Remove from Registry (to hide!)
RG.RootKey:=HKEY_LOCAL_MACHINE;
RG.OpenKey ('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', FALSE);
RG.WriteString ('PROGRAMMNAME','C:\Programm.exe');
RG.Destroy;
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mo 17.07.06 19:53 
Der Kye heißt ja auch PROGRAMMNAME.

_________________
Markus Kinzler.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 17.07.06 19:59 
Es fehlen die Ressourcenschutzblöcke mit try-finally und rufe nie Destroy direkt auf, sondern nutze Free.
ex4ct Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67


Delphi 7
BeitragVerfasst: Mo 17.07.06 21:56 
Ich habe es jetzt so hmacht wie ihr es geschrieben hattet
Aber es geht immernoch nicht! Nur das hinzufügen geht!
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
procedure TForm1.Button1Click(Sender: TObject);
var RG:TRegistry;
begin
try
RG:=TRegistry.Create;
RG.RootKey:=HKEY_LOCAL_MACHINE;
RG.OpenKey ('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', FALSE);
RG.CloseKey;
RG.DeleteKey ('PROGRAMMNAME'); //Ich glaube hier ist der Fehler!
RG.Destroy;
finally
end;
end;
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Mo 17.07.06 23:19 
Von CloseKey hat keiner was gesagt. :wink:

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
Born-to-Frag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1094

Win XP SP2, Win 2000 SP4
Delphi 7, 2k5
BeitragVerfasst: Mo 17.07.06 23:27 
Und das ganze jetzt noch mal mit korrekten Schutzblöcken:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
  Reg := TRegistry.Create;
  with Reg do
  try
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False);
    DeleteKey('Autostart-Titel'); 
  finally
    Free; //egal was passiert, auf jeden Fall Reg wieder freigeben
  end;



greetz

_________________
Theorie ist wenn man alles weiß, aber nichts funktioniert. Praxis ist wenn alles funktioniert, aber niemand weiß warum.
Microsoft vereint Theorie und Praxis: Nichts funktioniert und niemand weiß warum.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 17.07.06 23:33 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
procedure TForm1.Button1Click(Sender: TObject);  
var 
  RG:TRegistry;  
begin  
  RG:=TRegistry.Create;  
  try  
    RG.RootKey:=HKEY_LOCAL_MACHINE;  
    if RG.OpenKey ('SOFTWARE\Microsoft\Windows\CurrentVersion\Run', FALSE) then
    begin      
      // ziemlich dumm, den Schlüssel gleich nach dem öffnen wieder zu schließen
      //RG.CloseKey;
      RG.DeleteKey ('PROGRAMMNAME'); //Ich glaube hier ist der Fehler!  
      RG.CloseKey;
    end;
  finally  
    RG.Free;
  end;  
end;