Autor Beitrag
AlexII
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 180



BeitragVerfasst: Mi 13.02.08 00:57 
Hallo :-)

Ich verwende folgenden Code für den Autostart meines Programms: www.delphi-treff.de/...ist%5B0%5D=autostart

Der Benutzer hat also die Möglichkeit, beim klicken auf ein Button das Programm in Autostart zu schreiben.

Wie kann ich jetzt beim öffnen des Programms prüfen, ob Autostart schon eingeschaltet ist, oder nicht? Wenn eingeschaltet, dann kann ich dem Nutzer die Möglichkeit bitten, es wieder auszuschalten.
Xong
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 113

WIN 2000
Borland Developer Studio 2006
BeitragVerfasst: Mi 13.02.08 08:19 
Eigentlich genauso, wie du dein Programm in die Registry eingetragen hast.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
if Reg.ReadString(AName) = AFilename then begin
  // Autostart aktiv
end else begin
  // Autostart inaktiv
end;
AlexII Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 180



BeitragVerfasst: Mi 13.02.08 12:17 
Und was heißt in diesem Fall AName und AFilename?
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Mi 13.02.08 12:20 
Vermutlich das Gleiche wie in deinem Link.
AlexII Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 180



BeitragVerfasst: Mi 13.02.08 12:41 
Ja in meinem Link steht das

ausblenden Delphi-Quelltext
1:
<table width="98%" cellspacing="1" cellpadding="3" border="0" align="center"><tr>    <td><span class="genmed"><b>Zitat:</b></span></td>  </tr>  <tr>    <td class="quote">CreateAutorunEntry(Application.Title, ParamStr(0), akUserRun);</td>  </tr></table>					
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: Mi 13.02.08 12:47 
Und das:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
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;


Also ist AName hier Application.Title und AFileName ist ParamStr(0).
Xong
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 113

WIN 2000
Borland Developer Studio 2006
BeitragVerfasst: Mi 13.02.08 13:27 
user profile iconAlexII hat folgendes geschrieben:
Und was heißt in diesem Fall AName und AFilename?

Das sind Variablen, die an die Funktion übergeben werden, die du von delphi-treff.de übernommen hast.
Ich habe sie deshalb wieder genutzt, damit du diese Zeile in einer Funktion mit der Deklaration
function IsSetAutorunEntry(const AName, AFilename: String; const AKind: TAutorunKind): Boolean;
einfach einsetzen kannst!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
function IsSetAutorunEntry(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;
   // Das ist die einzige Zeile, die geändert wurde! War das denn so schwer zu verstehen?
   Result := Reg.ReadString(AName) = AFilename;
 finally
   Reg.Free;
 end;
end;

Noch mehr Hilfe kannst du nun wirklich nicht erwarten. =)

user profile iconAlexII hat folgendes geschrieben:
Ja in meinem Link steht das

ausblenden Delphi-Quelltext
1:
CreateAutorunEntry(Application.Title, ParamStr(0), akUserRun);					

Vielleicht solltest du dir den Programmcode, den du von irgendwo her hast, auch mal anschauen.
AlexII Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 180



BeitragVerfasst: Mi 13.02.08 14:55 
Vielen Dank!

Den Code werde ich schon einstudieren, letztendlich geht es ja um mich. Thx noch mal...