Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   AutoStart für Delphi-Programme über Systemregistrierung (https://www.delphipraxis.net/86529-autostart-fuer-delphi-programme-ueber-systemregistrierung.html)

TOC 15. Feb 2007 11:32


AutoStart für Delphi-Programme über Systemregistrierung
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi!

Ihr kennt sicher den Ordner "Start/Programme/Autostart" in den man seine selbstgeschriebenen Delphi-Programme ablegen kann um diese beim Start von Windows automatisch zu starten. Nungut, das funktioniert zwar, hat aber auch so seine Nachteile.

Es gibt nun aber auch die Möglichkeit ein AutoStart-Programm in die Systemregistrierung zu schreiben wie das professionelle Programme machen. Dies hat erhebliche Vorteile, da man seinem Programm so zum Beispiel auch beliebige Parameter beim Programmstart übergeben kann.

Im Anhang findest Du zwei kleine Delphi-Beispiel-Programme, eines für Delphi 3.0 und eines für Delphi 7.0. Über die CheckBox kannst Du ein/ausschalten ob das Beispiel-Programm beim Windows-Start, oder beim Anmelden eines neuen Benutzers, automatisch gestartet werden soll.

In der Unit "Global" findest Du die entsprechenden Funktionen:

// Erzeugt den Namen und den Pfad der Anwendung aus ParamStr(0)
Procedure GetProgramNameAndPath(Var ProgramName,ProgramPath:String);

// Systemregistrierungseintrag schreiben/löschen und somit AutoStart ein/ausschalten
Procedure SetAutoStart(Form:TForm; Flag:Boolean; Param:String);

// In der Systemregistrierung nachschauen ob AutoStart für diese Anwendung eingeschaltet ist
Function GetAutoStart(Form:TForm):Boolean;

Wenn Du nun aus Deinem Delphi-Programm ein AutoStart-Programm machen willst dann binde einfach die Unit "Global" in Dein Programm ein.

Grüsse von TOC :cyclops: !

Luckie 15. Feb 2007 11:43

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Eigentlich überflüssig, da man nur wissen muss, wie man in die Registry schreibt. Und auch einer verknüpfung im Autostart Ordner kann man Parameter mitgeben.

TOC 15. Feb 2007 12:00

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Hi!

Zitat:

Zitat von Luckie
Eigentlich überflüssig, da man nur wissen muss, wie man in die Registry schreibt. Und auch einer verknüpfung im Autostart Ordner kann man Parameter mitgeben.

Weiss aber nun mal nit jeder was man wo in die Systemregistrierung schreiben muss für ne Autostart Funktion! Aber nun kann jeder, den es interessiert, im SourceCode nachlesen wie´s geht!

Grüsse von TOC!

Luckie 15. Feb 2007 12:06

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Dann mach doch besser eine Klasse raus, die man dann direkt verwenden kann:
Delphi-Quellcode:
TAutoStart = class(TObject)
private
  //...;
  //...;
public
  procedure AutoStart(Programmname, Pfad, Parameter: String; AllUsers: Boolean = False);
  procedure DelAutoStrat(Programmname: String);
end;
(Nur mal so als Vorschlag, wie die Klasse aussehen könnte.)

TOC 15. Feb 2007 12:13

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Hi!

Ach, ne eigene Klasse für die 3 kleinen Funktionen? Wat sollte dat bringen? Natürlich kann man aus fast allem Unfug ne Klasse machen oder sogar ne Komponente dafür schreiben, aber sehr sinnvoll finde ich dies nicht :roll: !

Grüsse von TOC!

Luckie 15. Feb 2007 12:24

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Der Sinn ist der, dass du dann keine zwei, drei losen Funktionen in einer Unit rumfliegen hast. Du kannst sie dann ja noch erweitern mit Erstellen von Verknüpfungen im Autostartordner und im RunOnce-Schlüssel der Registry. Also da kann man schon was schönes raus machen.

TOC 15. Feb 2007 13:01

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Hi!

Zitat:

Zitat von Luckie
Der Sinn ist der, dass du dann keine zwei, drei losen Funktionen in einer Unit rumfliegen hast. Du kannst sie dann ja noch erweitern mit Erstellen von Verknüpfungen im Autostartordner und im RunOnce-Schlüssel der Registry. Also da kann man schon was schönes raus machen.

Ja, gut, das hört sich nicht so schlecht an. Ich könnte ja auch ne nichtvisuelle Komponente draus machen, dann bräuchte der Programmautor ja nur die Eigenschafft "Enabled" (z.B.) auf true/false setzen?
Was meinst Du, würde sich der Aufwand lohnen?

Grüsse von TOC!

Luckie 15. Feb 2007 13:06

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Eine Komponente würde ich nicht daraus machen. Eine eigene Unit mit Klasse reicht vollkommen.

TOC 15. Feb 2007 13:20

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Hi!

Zitat:

Zitat von Luckie
Eine Komponente würde ich nicht daraus machen. Eine eigene Unit mit Klasse reicht vollkommen.

Naja, eine Klasse muss erst erzeugt und später wieder freigegeben werden und dafür braucht man dann noch ne Variable etc.. Ich glaube das mit der Klasse ist zu umständlich! Ok, man könnte eine eigen Unit für solche Spielereien schreiben, oder für Leute mit recht wenig Plan ne Komponente die man einfach ins Formular klickt und dann true/falls etc... Auf der anderen Seite sammle ich in der Unit "Global" halt Sachen die ich in fast all meinen Programmen brauche und verwende...

Grüsse von TOC!

matashen 15. Feb 2007 13:31

Re: AutoStart für Delphi-Programme über Systemregistrierung
 
Nachdem jeder so seine eigenen Vorzüge in sachen Klassen Units etc hat, hier mein Vorschlag,

mach einfach alle Varianten, schon passt's für jeden

:dp:


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:01 Uhr.
Seite 1 von 3  1 23      

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