Programm bremst Windows-Start aus
-
Hallo,
Ich habe folgendes Problem: Ich habe ein kleines Programm geschrieben, das über die Registry beim Windows-Start gestartet wird. Um sicher zu gehen, das Windows auch komplett geladen wurde, bevor das Programm mit der Arbeit beginnt habe ich am Anfang folgende Schleife eingefügt:while (GetTickCount() < 120000) Sleep(10);
Das heisst das Programm soll nach dem Windows-Start 2 Minuten warten, damit Windows vollständig geladen ist. Beim Testen habe ich aber festgestellt, das dies offenbar den Systemstart selbst ausbremst. Nach der Anmeldung blieb Windows so lange stehen bis die 2 Minuten vorbei sind. Erst wenn mein Programm mit der Arbeit beginnt geht auch der Windows-Start weiter. Wenn ich mein Programm während der 2 Minuten Wartezeit über den Taskmanager beende (der funktioniert da schon) geht der Windows-Start direkt weiter. Kann mir jemand einen Tipp geben, wie ich das vollständige Laden von Windows abwarten kann ohne das der Systemstart "unterbrochen" wird?
-
In welcher Sektionhast Du es denn untergebracht? Je nachdem wo, wird in manchen Bereichen solange gewartet bis Dein Programm fertig ist (IMHO RunOnce)... Die Autostart Gruppe läuft paralell.
Was meinst Du denn mit Windows komplett geladen ist? Wenn Dein Programm gestartet wird ist Windows "komplett" gestartet!
Auf welches Ereignis willst Du denn warten?
-
hi, Danke für die Antwort

Also nach dem ich Benutzername und Passwort zum Windows-Start eingegeben habe ist ja schon das Desktop-Hintergrundbild zu sehen, aber noch nicht die Ordner und Desktop-Verknüpfungen und die Startleiste. An dieser Stelle bleibt der Systemstart dann stehen bis die 2 Minuten Wartezeit in meinem Programm vorbei sind. Erst dann werden die Ordner und die Startleiste geladen und dann folgen ja noch die Trayicons. Ich hab mein Programm unter HKCU ganz normal unter Run stehen. Was ich mit meiner Frage meinte: Gibt es irgendeine Möglichkeit mein Programm warten zu lassen bis Windows vollständig geladen ist (also einschließlich aller Desktop-Symbole und Trayicons) ohne das der Systemstart anhält?
-
Prob schrieb:
Gibt es irgendeine Möglichkeit mein Programm warten zu lassen (...) ohne das der Systemstart anhält?
10 ms bei Sleep () wirkt wie eine Endlosschleife ( i.e. for (;;) {} ).
Probiere mal folgendes :
statt : ------- while (GetTickCount() < 120000) Sleep(10); nur : ------- Sleep (120000);Nach Aufruf von "Sleep (120000);" beachtet das Betriebssystem Dein Programm für zwei Minuten nicht mehr.
-
Du hast nicht geschrieben welche Methode Du verwendet hast? RunOnce?
IN diesem Fall entsprícht das Verhalten der Doku.
http://support.microsoft.com/kb/179365/de
-
10 ms bei Sleep () wirkt wie eine Endlosschleife ( i.e. for (;;) {} ).
Das ist ein Gerücht und entspricht in keinster Weise der Wahrheit.
-
Hi, Danke für die Antworten. Ich habe es vorher schon mit Sleep(120000) probiert, das Ergebnis war das gleiche, leider
Ich benutze den ganz normalen Key "Run" unter HKCU, also nicht RunOnce oder ähnliche. Weiss langsam nicht mehr weiter 