AGB  ·  Datenschutz  ·  Impressum  







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

Programm aus Autostart entfernen

Ein Thema von T.E. · begonnen am 30. Aug 2007 · letzter Beitrag vom 31. Aug 2007
Antwort Antwort
T.E.

Registriert seit: 27. Mai 2007
Ort: Hamburg
284 Beiträge
 
Delphi XE2 Enterprise
 
#1

Programm aus Autostart entfernen

  Alt 30. Aug 2007, 17:20
Hallo

Ich benutze folgenden Quellcode um ein Programm in den Autostart zu schreiben:
Delphi-Quellcode:
type
 TAutorunKind = (akUserRun, akUserRunOnce, akRun, akRunOnce, akRunServices, akRunServicesOnce);

uses
 Registry;

function CreateAutorunEntry(const AName, AFilename: String; const AKind: TAutorunKind): Boolean;
var
 Reg: TRegistry;
begin
 Result:=False;
 Reg := TRegistry.create;
 try
   if (AKind=akUserRun) or (AKind=akUserRunOnce) then
     Reg.Rootkey:= HKEY_CURRENT_USER
   else
     Reg.RootKey := HKEY_LOCAL_MACHINE;

   case AKind of
     akRun, akUserRun : Result:=Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', True);
     akRunOnce, akUserRunOnce: Result:=Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\RunOnce', True);
     akRunServices : Result:=Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\RunServices', True);
     akRunServicesOnce : Result:=Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\RunServicesOnce', True);
   end;
   Reg.WriteString(AName, AFilename);
 finally
   Reg.Free;
 end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 CreateAutorunEntry(Application.Title, ParamStr(0), akUserRunOnce);
end;
So nun wüsste ich gerne wie ich das Programm mit eine OnButtonClick routine wieder aus dem Autostart entfernen kann...

Weiß jemand wie ich das machen kann?

[BITTE keine Vorschläge, dies über Windows oder andere Programme zu machen!!]
Gruß Torben
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Programm aus Autostart entfernen

  Alt 30. Aug 2007, 17:22
.DeleteString()
Markus Kinzler
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Programm aus Autostart entfernen

  Alt 30. Aug 2007, 17:42
Ich habe die Funktion mal zu einer hübschen Unit ausgebaut.
Als Gegenleistung hätte ich gerne, das die Funktionen getestet werden und evtl. Änderungen
hier gepostet werden.
Und dann bitte in die Code-Library aufnehmen.
Delphi-Quellcode:
unit AutorunHlp;

interface

type
  TAutorunKind = (akUserRun, akUserRunOnce, akRun, akRunOnce, akRunServices, akRunServicesOnce);

function CreateAutorunEntry(const AName, AFilename: String; const AKind: TAutorunKind): Boolean;
function DeleteAutorunEntry(const AName: String; const AKind: TAutorunKind): Boolean;

implementation

uses Windows, Registry, RegStr;


function GetRegistryPath(const AKind: TAutorunKind):string;
begin
   case AKind of
     akRun, akUserRun : Result := REGSTR_PATH_RUN;
     akRunOnce, akUserRunOnce: Result := REGSTR_PATH_RUNONCE;
     akRunServices : Result := REGSTR_PATH_RUNSERVICES;
     akRunServicesOnce : Result := REGSTR_PATH_RUNSERVICESONCE;
   end;
end;

function CreateAutorunEntry(const AName, AFilename: String; const AKind: TAutorunKind): Boolean;
var
   Reg: TRegistry;
begin
   Result:=False;
   Reg := TRegistry.create;
   try
      if (AKind=akUserRun) or (AKind=akUserRunOnce) then
        Reg.Rootkey:= HKEY_CURRENT_USER
      else
        Reg.RootKey := HKEY_LOCAL_MACHINE;

      Result:=Reg.OpenKey(GetRegistryPath(AKind), True);
      if AFilename = 'then
      begin
         if Result then
            Result := Reg.DeleteKey(AName);
      end
      else
         Reg.WriteString(AName, AFilename);
   finally
      Reg.Free;
   end;
end;

function DeleteAutorunEntry(const AName: String; const AKind: TAutorunKind): Boolean;
begin
   Result := CreateAutorunEntry(AName, '', AKind);
end;

end.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von gsh
gsh

Registriert seit: 24. Okt 2004
1.542 Beiträge
 
Delphi XE Architect
 
#4

Re: Programm aus Autostart entfernen

  Alt 30. Aug 2007, 19:26
//edit:
Hab nochmal alles geändert und in delphi kompiliert.
Müsste funktionieren.
Hab außerdem noch eine Funktion hinzugefügt um herauszufinden ob der Eintrag vorhanden ist

//edit2:
NEUE VERSION!!!
Die ist jetzt getestet und funktioniert jetzt auch
Angehängte Dateien
Dateityp: pas autorunhlp_933.pas (2,2 KB, 16x aufgerufen)
Alex
"Sage nicht alles, was du weißt, aber wisse alles, was du sagst!" Matthias Claudius
"Wer sich über Kritik ärgert, gibt zu, daß er sie verdient hat." Tacitus
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: Programm aus Autostart entfernen

  Alt 31. Aug 2007, 10:33
Zitat von gsh:
Hab nochmal alles geändert und in delphi kompiliert.
Und hab jetzt den Code nochmals eingedampft, da die 3 Funktionen ja fast identisch sind.

PS: da war noch ein Fehler drin; jetzt müsste es passen
Angehängte Dateien
Dateityp: pas autorunhlp_915.pas (2,0 KB, 47x aufgerufen)
Andreas
  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 04:48 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