Der Martin: Windows XP Autostart

Beitrag lesen

Hallo Siechfred,

Prinzipiell sieht die Reihenfolge (abgesehen von den Diensten, die vor dem Einloggen gestartet werden) so aus:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
Autostart-Ordner

korrekt soweit, aber ich ergänze:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

Einträge load= und run= aus der win.ini

Autostart-Ordner alle Benutzer

Autostart-Ordner angemeldeter Benutzer

Und zu deinem Hinweis "Diensten, die vor dem Einloggen gestartet werden", möchte ich anmerken, dass die Run- bzw. RunOnce-Schlüssel unter HKLM ebenfalls schon abgearbeitet werden, *bevor* sich ein Benutzer anmeldet.

Die Reihenfolge der Ausführung der in "Run" (von "RunOnce" solltest du die Finger lassen) kann man m.W.n. beeinflussen, indem man den Namen eine Indexnummer voranstellt

Das kann man machen, es ist aber ein Trugschluss, dass sich damit die Reihenfolge der Bearbeitung ändert. Denn diese Werte werden über die API-Funktion RegEnumValue() ausgelesen, die die Einträge in einer ebenso quasi-zufälligen Reihenfolge abliefert wie FindNextFile() bei einer Suche im Dateisystem, nämlich in der Reihenfolge, wie die Einträge physikalisch angeordnet sind. Die Sortierung, wie wir sie vom Windows-Explorer bzw. auch vom Registry-Editor gewöhnt sind, erfolgt erst auf Applikationsebene.

Ein weiteres Problem beim Start mehrerer Prozesse ist, dass Windows die in der Registry oder im Autostart-Ordner angegebenen Programme sehr schnell hintereinander, fast gleichzeitig, startet aber jedes Programm verschieden lange für seine interne Initialisierung braucht. Die Startreihenfolge sagt deshalb noch nichts darüber aus, welches dieser Programme als erstes bereit ist, seine Aufgabe zu erfüllen.

Wenn du die Reihenfolge der Ausführung der im Autostart-Ordner abgelegten Programme beeinflussen willst, dann schreibe dir eine Batch-Datei, welche die Programme in gewünschter Reihenfolge aufruft. Diese Batch-Datei ist dann dein einziger Eintrag in "Autostart".

Das ist so ziemlich die einzige Möglichkeit, wie du die Reihenfolge kontrollieren kannst - vor allem, wenn du die einzelnen Programme nicht direkt durch Angabe ihres Namens startest, sondern mit dem start-Kommando. Interessant ist hier vor allem der Schalter /w (oder /wait), mit dem die Batchdatei wartet, bis das aufgerufene Programm fertig ist. Andernfalls verhält sich eine Batchdatei beim Starten mehrerer Programme genauso wie vorher schon beschrieben.

So long,
 Martin

--
Ich stehe eigentlich gern früh auf.
Außer morgens.