Bootvorgang für Autostartprogramme abfragen
-
Hallo an alle,
ich bin der Neue.
Mein Problem ist folgendes:
Ein Win32-Programm mit Sockets soll aus der Autostart heraus gestartet werden. Auf manchen Rechnern (W2K oder XP) klappt das Starten, auf anderen Rechnern (W2K oder XP) werden die Sockets wieder zerstört. Es muss also was mit dem Fortschritt des Bootvorganges zu tun haben.
Nun zu meiner Frage:
Gibt es eine Möglichkeit, das Programm so zu erweitern, dass es selbst erkennt, wann die Zeit reif für die Ausführung ist? Wenn es noch warten soll wäre Sleep(0) eine Alternative.Vielen Dank für Eure Hilfe schon mal vorab. Ich werde mich hoffentlich bald revanchieren können.
Gruss
Lars
-
chezz schrieb:
Ein Win32-Programm mit Sockets soll aus der Autostart heraus gestartet werden. Auf manchen Rechnern (W2K oder XP) klappt das Starten, auf anderen Rechnern (W2K oder XP) werden die Sockets wieder zerstört. Es muss also was mit dem Fortschritt des Bootvorganges zu tun haben.
WAS wird zerstört. WAS für einen Fehlercode hast Du? Bindest Du Dich an einen Port? Ist dieser womöglich schon belegt?
chezz schrieb:
Gibt es eine Möglichkeit, das Programm so zu erweitern, dass es selbst erkennt, wann die Zeit reif für die Ausführung ist?
WANN soll denn die Zeit "reif" sein???
-
lol
-
Ich "lol" mal zurück....
GetLastError()
ERROR_SUCCESSWSA...
Keine Fehler. "else return false;" Kein false.Port:
Klar. Aber es gibt nur zwei: Peer und Peer (DHCP oder fest: klappt nicht).Gibt es eine Möglichkeit, das Programm so zu erweitern, dass es selbst erkennt, wann die Zeit reif für die Ausführung ist?
Das ist des Pudels Kern.Nimm ein kleines Programm (ohne HWND) und starte es manuell, sobald der Desktop sichtbar ist, der Mauszeiger aber rechts neben dem Pfeil noch die Sanduhr hat. Manchmal wird das Programm (Konsole oder HWND, egal) bei mir dann wieder geschlossen.
Ein ähnlicher Effekt zeigt sich bzgl. meiner Frage: Die (WSA-) Connection wird wieder dicht gemacht. Das weiss ich ganz genau, weil ich beide Peers selbst geschrieben habe und deshalb im µC exakt sehen kann, was Windows mit meinem WSASocket so treibt. Warte ich, bis der Mauszeiger "keine Sanduhr" mehr hat, klappt alles wunderbar. Mein µC hat ein Flag, das mir signalisiert: KANN LOSGEHEN MIT DEN PROZESSEN! Hat Windows das auch?Registry kann ich, da brauche ich keinen Rat für. Klappt nicht. START->blabla ... klappt auch nicht. Aus purer Verzweiflung (wegen !HWND): WM_ENTERMENULOOP ... netter Versuch, aber ... (war ja klar, wegen !HWND).
Im Moment betrachte ich das Problem statistisch: Ändert sich die Anzahl der Threads in einem gegebenen Zeitraum nicht mehr als um eine Standardabweichung, ist Windows "eingeschwungen". Das funktiniert 100% zuverlässig, ist aber extrem lahm. Deshalb nochmal meine Frage: Gibt es ein Flag, ein Event oder eine Message, wodurch mir signalisiert wird, dass das System "steht" und ich mit meinem Programm loslegen kann? So ein "Flag" wie bei SHUTDOWN? Shutdown ist ja hinreichend dokumentiert. Aber STARTUP ist da schon sehr mau.
Ach ja. Mit dem Scheduler geht's dann wieder. Woher holt der Scheduler diese Information?Gruß
Lars
-
Wenn der Prozess gestartet wird, dann ist genau zu diesem Zeitpunkt der richtige Zeitpunkt!
Du machst was anderes falsch!
-
Danke für die Antwort.
Es bleibt nur leider nicht mehr viel, wo was falsch sein könnte.
-
Mir ist nichts bekannt, was eine Anwendung "automatisch" schliesst.... es sei Denn Du hast einen Fehler in Deiner Anwendung.
Sag bitte, WAS genau passiert und nicht nur "es wird geschlossen"... dann setze in "main" einen Breakpoint und debugge...
-
chezzmatazz schrieb:
Danke für die Antwort.
Es bleibt nur leider nicht mehr viel, wo was falsch sein könnte.
Red kein Blech daß GetLastError immer no error zurückliefert. Von alleine geht dein Prog nicht schrott, sieh es halt ein, der Fehler liegt an dir bzw deinem Programm nicht am bösen Windoof. also zeige code wenn du hilfe willst, ansonsten spinn deine verschwörungstheorien woanders, danke.
-
Tja, das war wohl mein letzter Besuch in diesem Forum.
Es stand nirgendwo was von "windoof". Und wenn GetLastError sagt "ist ok", dann könnte es wohl sein, dass das stimmt.
Ich schrieb mit keinem wort, dass das programm "schrott geht", sondern dass mir der socket wieder zu gemacht wird. Das andere war nur ein beispiel.Machts gut Leute und arbeitet noch schön an euren verschwörungen. ich für meinen teil bevorzuge den etwas kreativeren stil.
Gruß
PS.: Mein Arbeitskollege is auch son spezi. Will nix lesen, aber kann alles. bis man dann seine sourcen sieht ...
-
denk dir nix ascda ist immer so er denkt er ist der tollste und weiß bestimmt nicht mal wie man die Funktion MessageBox aufruft
-
rechtgeb schrieb:
denk dir nix ascda ist immer so er denkt er ist der tollste und weiß bestimmt nicht mal wie man die Funktion MessageBox aufruft
nö der tollste bin ich ned, aber ich gehöre sicherlich zu den 5 tollsten leuten hier im winapi forum und das ist mehr als du, also halte doch bitte die klappe, wenn du auch sonst nix zum thema des threads beitragen kannst. vielen dank.
-
rechtgeb schrieb:
denk dir nix ascda ist immer so er denkt er ist der tollste und weiß bestimmt nicht mal wie man die Funktion MessageBox aufruft

-
du Boon weißt doch nicht mal wie man sich registriert oder?
denkst du wirklich du bist einer der 5 Besten?
du hast wohl die Suppe der Weisheit mit einer Gabel gegessen.
-
das einzige was du den ganzen tag machst ist in irgendwelchen threads "rumzulollen" oder hinzuschreiben das der topic ersteller keine ahnung hat!
also hör endlich auf mit deinen extrem mageren kenntnissen ("kenntnissen" müsste eigentlich ins singular) zu behaupten du wärst der 5 tollste dass pisst mich so an