AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Programmstart durch Autostart - kann man das herausfinden?
Thema durchsuchen
Ansicht
Themen-Optionen

Programmstart durch Autostart - kann man das herausfinden?

Ein Thema von Flare · begonnen am 15. Sep 2006 · letzter Beitrag vom 16. Sep 2006
Antwort Antwort
Seite 1 von 3  1 23      
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#1

Programmstart durch Autostart - kann man das herausfinden?

  Alt 15. Sep 2006, 15:20
Hallo DP!

Ich habe mal eine Frage zum Thema Windows-Start und Autostart.

Wenn ich zum Beispiel die Programme ICQ Lite und den Windows Messenger habe (ich habe noch ein paar mehr Beispiele aber 2 dürften reichen), dann liegen die ja auf Wunsch im Autostart von Windows - In der Registry eingetragen.
Damit man den Autostart besser vom normalen Start unterscheiden konnte wurden entsprechende Parameter zum Starten angehängt.

Und jetzt das Problem bzw. meine Frage:

Kann man herausfinden ob ein Programm direkt beim Systemstart gestartet wird (also durch das durchgehen aller Autostarts von Windows) oder erst danach?

Bei mir ist es nämlich so, ich kann ICQ und MSN nicht mit dem Parameter manuell starten, es klappt bloß wenn der Parameter weg ist.

Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 15. Sep 2006, 15:31
Du meinst, Du willst wissen, welche Programme alle im Autostart von Windows liegen?

Das sind folgende Schlüssel in der Registry:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run (für den aktuellen Benutzer)
HKLM\Software\Microsoft\Windows\CurrentVersion\Run (für alle Benutzer)

oder im Startmenü:
Start -> Programme -> Autostart

Aber ich habe dazu auch mal ein Programm geschrieben:
http://www.delphipraxis.net/internal...ct.php?t=85450

Nachtrag:
Du kannst auch im Startmenü: Start -> Ausführen
msconfig
eingeben und dann auf "Systemstart" klicken.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#3

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 15. Sep 2006, 15:36
Nein, ich möchte herausfinden OB man herausfinden kann OB ein Programm durch den Windows Autostart gestartet wurde oder nicht, das scheint nämlich ICQ und MSN zu können...

Wo alle möglichen Autostarts liegen weiß ich schon


Flare

P.S.: Ich habe elber dazu ein Programm geschrieben
Willy Scheibel
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#4

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 15. Sep 2006, 15:42
Also normale Programme wie ICQ etc. werden über die Autostart gestartet.

Sogenannte Dienste (sagen wir mal das sind "Spezialprogramme") werden nach dem Booten des Betiebssystems und VOR dem Laden der Programme in der Autostart ausgeführt.

Über z. B.
Delphi-Quellcode:
Uses registry...
function IsAppInRun(RunName: string): Boolean;
var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create;
  with Reg do
  begin
    RootKey := HKEY_LOCAL_MACHINE;
    OpenKey('Software\Microsoft\Windows\CurrentVersion\Run', False);
    Result := ValueExists(RunName);
    CloseKey;
    Free;
  end;
end;
Kannst Du prüfen ob ein Programm in der Registry steht. Dazu musst Du aber den Runnamen rausfinden.
Nimm dazu Regedit.
Weitere Codes dazu hier:
Torry hilft!

Roter Kasten:
Sorry, aber wenn in der Autorun das Programm steht, wird es auch ausgeführt.
Eine Routine, um zu prüfen ob Autostart(Programmname)=True ist, gibt es nicht. Du kannst nur nachsehen, ob das Programm in der Registry und RUN steht.

CU!
Go2EITS
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 15. Sep 2006, 15:43
Sorry, dann hab ich Dich falsch verstanden....
Aber wenn das Programm gestartet ist und Du es nicht manuell gestartet hast und es auch im Autostart steht, dann wurde es wohl durch den Autostart von Windows gestartet

Zusätzliche Parameter beim Autostart sind nicht unbedingt erforderlich, meißtens werden die halt übergeben, damit das Programmm minimiert im Systray gestartet wird und nicht als sichtbares Fenster.
Bei einem eigenen Programm kannst Du die Parameter per ParamStr() auslesen, nicht aber ob es durch den Autostart oder irgendwie anders gestartet wurde - zumindest meines Wissens nach...
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#6

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 15. Sep 2006, 16:10
Coole Sache, dass ich hier nur zur Hälfte verstanden werde, aber wenigstens hat Martin K eine Antwort gesagt die ich mir auch schon dachte.

Aber das ganze nochmal ganz deutlich!

Ich habe ein Programm programmiert womit man Auostarts von Windows extrahieren kann und mit meinem Programm danach (irgendwann später) starten kann. Allerdings startet er die Programme manchmal nicht, was mit dem Parameter zu tun hat. Also immer die selben Programme starten nicht, manche jedoch starten.

Die Idee die angebracht wurde ist, dass das Programm nachguckt ob es im Autostart steht wenn es per speziellem Parameter gestartet wird und beendet sich wieder falls dem nicht so ist.

Kann das jemand bestätigen oder gibts da nen noch einfacheren Trick den ich nicht kenne?


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 15. Sep 2006, 16:17
Wenn Du mit deinem Programm ein Programm startest was im Autostart steht, startest Du es dann mit den selben Parametern, die auch im Autostart stehen?
1. Möglicherweise läuft das Programm vorher noch und es verhindert von sich aus, dass das Programm selbst 2x gestartet wird
2. wenn Du es startest mit den Parametern wie im Autostart, siehst Du vielleicht gar nicht dass es gestartet wurde, weil es versteckt ist

Schau mal im Taskmanager unter "Prozesse", ob dort die exe von dem entsprechenden Programm aufgelistet ist, also ob:
1. es schon vorher läuft, bevor Du es mit deinem Programm startest
2. es gestartet wurde mit deinem Programm, nur halt versteckt
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#8

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 15. Sep 2006, 16:22
Einige Programme starten auch nicht wenn Du die Parameter übergibst, genauso wie Programme, die keine Parameter benötigen.

Das könnte daran liegen, dass einige Programme ihren eigenen Path abfragen, daher starten die Programme nicht (weil Du aus einem anderen Verzeichnis startest, wohl mit shellexecute, in dem nicht die zum Programm gehörigen Dateien liegen) oder stürzen sogar ab, wenn sie Dateien beim Start abfragen, repektive einlesen wollen, die dann aber nicht zu finden sind.
  Mit Zitat antworten Zitat
Flare

Registriert seit: 26. Jan 2006
Ort: Leipzig
529 Beiträge
 
Delphi 7 Professional
 
#9

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 15. Sep 2006, 16:23
Es wurde nicht gestartet (ich überwache natürlich alle Autostarts außer die System-notwendigen und den Ordner, aber da steht ICQ und MSN nunmal nicht drin
Im Taskmanager gucke ich natürlich auch immer rein, es ist davor nicht gestartet und danach auch nicht.

Versteckt laufen sollten die Programme nicht (wieso sollte ICQ dies tun )

Ich starte es mit den selben Parametern (es gibt auch die Funktion die Atostarts wieder zurückzuschieben, dann muss ja auch die Kompatiblität geleistet sein)

Die Programme starten wobald ich den Parameter weglasse (mit ICQ und MSN getestet)


Flare
Willy Scheibel
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Programmstart durch Autostart - kann man das herausfinde

  Alt 15. Sep 2006, 16:27
Schreib doch einfach mal ein eigenes Programm in den Autostart und lass dir in dem Programm das Verzeichnis mit GetCurrentDir anzeigen.
Dann weißt Du, was die Programme aus dem Autostart für ein Arbeitsverzeichnis verwenden, das Du dann auch beim ausführen mit ShellExecute übergeben musst.
Wenn das Verzeichnis immer das aktuelle Verzeichnis ist in dem sich das Programm befindet, dann übergebe einfach nil bei ShellExecute als Arbeitsverzeichnis.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 23:40 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