AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Feststellen, ob ein Programm als Autostart gestartet ist
Thema durchsuchen
Ansicht
Themen-Optionen

Feststellen, ob ein Programm als Autostart gestartet ist

Ein Thema von rainerg · begonnen am 29. Mai 2011 · letzter Beitrag vom 29. Mai 2011
Antwort Antwort
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#1

AW: Feststellen, ob ein Programm als Autostart gestartet ist

  Alt 29. Mai 2011, 09:43
Das ist er auch, wenn das Programm per Explorer/Desktop/Verknüpfung/Startmenü gestartet wurde.

Einzige mir bekannte Möglichkeit: An allen bekannten Autostart-orten nachschauen, ob das Programm dort eingetragen ist. Dann weiß dein Programm, dass es im Autostart steht.

Einzig die Information, dass dein Programm vom User in den Autostart gesetzt wurde, sollte dir absolut nichts bringen. Wenn ich ein Programm nach der Anmeldung gerne gestartet sehe, dann setze ich das schon mal selbst in den Autostart und dann hat das da auch zu bleiben. Und wenn du Probleme mit Pfaden hast, dann kannst du einen billigen Workaround verwenden: ChDir(ExtractFilePath(Applicaltion.ExeName)); .

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Feststellen, ob ein Programm als Autostart gestartet ist

  Alt 29. Mai 2011, 09:51
Das ist er auch, wenn das Programm per Explorer/Desktop/Verknüpfung/Startmenü gestartet wurde.
Genau das ist der Punkt. Es hilft nicht den Elternprozess zu kennen.

Zitat:
Und wenn du Probleme mit Pfaden hast, dann kannst du einen billigen Workaround verwenden: ChDir(ExtractFilePath(Applicaltion.ExeName)); .
Und wenn ich es gleich richtig mache, brauche ich diese Krücke nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.338 Beiträge
 
Delphi 12 Athens
 
#3

AW: Feststellen, ob ein Programm als Autostart gestartet ist

  Alt 29. Mai 2011, 09:57
Das programm sieht, daß es irgendow in einem der vielen Autostartorte liegt, aber was bringt es as zu wissen?
Das Programm kann ja dennoch (nochmal) normal gesartet wurden sein.

Nja, vielleicht wäre es hilfreich, wenn man mal den Gund erfährt, warum das Programm unterschiedlich reagieren muß.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von rainerg
rainerg

Registriert seit: 5. Aug 2002
Ort: Hannover
82 Beiträge
 
Delphi XE Starter
 
#4

AW: Feststellen, ob ein Programm als Autostart gestartet ist

  Alt 29. Mai 2011, 10:09
Das ist er auch, wenn das Programm per Explorer/Desktop/Verknüpfung/Startmenü gestartet wurde.

Einzige mir bekannte Möglichkeit: An allen bekannten Autostart-orten nachschauen, ob das Programm dort eingetragen ist. Dann weiß dein Programm, dass es im Autostart steht.

Bernhard
Mal genauer gesagt, was ich erreichen möchte:

Ich habe ein Programm geschrieben, dass Datum/Uhrzeit einer Datei setzt. Im Autostart-Modus soll das Proggi bei diesen Dateien, die in einer INI-Datei hinterlegt sind, das Dateidatum halt setzen, ohne es die Form angezeigt wird und sich dann selber beenden.
Wird das Proggi normal gestartet, dann soll das Form erscheinen, damit ich manuell Datum/Uhrzeit für eine Datei setzen kann und damit ich das Proggi konfigurieren kann, also z. B. die gewünschten Dateien auswähle. Und natrülich soll es sich nicht selber terminieren.

Zurzeit habe ich das wie folgt gelöst:

Delphi-Quellcode:
procedure TMainForm.FormActivate(Sender: TObject);
var i:integer;
begin
        IniCtrl.ReadStrings('Files','Item',FileListBox.Items);
        if UpperCase(ParamStr(1))='AUTOthen begin
          if FileListBox.Items.count>1 then begin
            for i:=1 to FileListBox.Items.Count do begin
              SetFileDate(FileListBox.Items[i],now);
            end;
          end;
          Application.Terminate;
        end;
end;
Ist also an der EXE der Parameter AUTO gehängt, dann setze das Datum (Okay - ein vorheriges Prüfen, ob die Datei da noch da, ist noch eine andere Baustelle, kommt aber noch rein ).

Aber wenn das Proggi selber merkt, dass es per Autostart gestartet wurde, wäre das ja unnötig.
Rainer G. aus H.
www.BunteReisebilder.de
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.905 Beiträge
 
Delphi 12 Athens
 
#5

AW: Feststellen, ob ein Programm als Autostart gestartet ist

  Alt 29. Mai 2011, 10:14
Hier musst du dann einen Parameter /silent oder eben /auto benutzen. Das geht nicht anders. So machen das auch andere Programme. Du hast also schon den richtigen Weg.

Wenn der Benutzer deine Option zum in den Autostart legen nicht nutzen möchte, muss er halt damit leben, dass es nicht richtig funktioniert.

Das in FormActivate zu packen ist allerdings haarsträubend.
Sowas gehört in den Projektquelltext (Projekt in der Projektverwaltung anklicken --> Strg + V oder Rechtsklick drauf und "Quelltext anzeigen"). Und wenn das benutzt wird, erzeugt man das Formular gar nicht erst...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von rainerg
rainerg

Registriert seit: 5. Aug 2002
Ort: Hannover
82 Beiträge
 
Delphi XE Starter
 
#6

AW: Feststellen, ob ein Programm als Autostart gestartet ist

  Alt 29. Mai 2011, 10:55
...
Das in FormActivate zu packen ist allerdings haarsträubend.
Sowas gehört in den Projektquelltext (Projekt in der Projektverwaltung anklicken --> Strg + V oder Rechtsklick drauf und "Quelltext anzeigen"). Und wenn das benutzt wird, erzeugt man das Formular gar nicht erst...
Okay, das werde ich noch optimieren - danke für den Tipp!
Rainer G. aus H.
www.BunteReisebilder.de
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#7

AW: Feststellen, ob ein Programm als Autostart gestartet ist

  Alt 29. Mai 2011, 10:15
Aber wenn das Proggi selber merkt, dass es per Autostart gestartet wurde, wäre das ja unnötig.
Du könntest nur aus der Zeit, die der Benutzer angemeldet ist, schließen, dass es der Autostart sein müsste. Mehr geht wirklich nicht.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  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 20:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz