HowTo? - ShutDownWindow verbergen
-
Hi!
Mein Programm holt sich erst das Privileg und dann lass ich meinen Rechner (OS: WinXP) mit
InitiateSystemShutdown(NULL,NULL,30,1,1);rebooten. Wenn man das ganze timed (in meinem Beispiel 30 secs), dann erscheint dieses hässliche Fenster "System wird in bla Sekunden heruntergefahren [...] ausgelöst vom User bla [...]". Die Frage ist, ob man das Fenster verbergen kann, dass es net angezeigt wird.
MfG
-
Verwende einfach
ExitWindowsEx!
-
Nur kann ich da nen Zeitparameter angeben?
-
Was willst Du mit einem Zeitparameter, wenn niemand abbrechen drücken kann?
Der Zeitparameter ist *nur* dafür da, den Dialog so lange anzeigen zu lassen. Das System wird erst *nach* dieser Zeit runtergefahren.
-
ExitWindowsEx() nützt mir nix, da ich da wie gesagt keinen Timer einbauen kann. Und das System soll nunmal erst nach einiger Zeit herunterfahren und nicht sofort. Der Hintergrund ist, dass das Programm noch Sachen macht, während der Timer läuft. Es wird beispielsweise eine Log.txt erstellt, in welcher u.a. stehen soll, dass das System erfolgreich heruntergefahren wurde. Und ich kann da nunmal nur reinschreiben, dass erfolgreich heruntergefahren wurde, wenn der Timer schon läuft.
HELP!
MfG
-
Du schreibst in die Datei rein, dass Windows erfolgreich runtergefahren wurde bevor du weißt, ob die Funktion erfolgreich war? Was wnn die Funktion fehlschlägt? Dann hast du in der Datei stehen, dass das Runterfahren erfolgreich war, obwohl es das nicht war.
Aber sei es dsrum, was hindert dich daran einen Timer zu starten und wenn der abgelufen ist ExitWindowsEx aufzurufen?
Aleternativ könntest du auch in einem zweiten Thread das Fenster suchen und es mit ShowWindow verbergen.
-
Du schreibst in die Datei rein, dass Windows erfolgreich runtergefahren wurde bevor du weißt, ob die Funktion erfolgreich war? Was wnn die Funktion fehlschlägt? Dann hast du in der Datei stehen, dass das Runterfahren erfolgreich war, obwohl es das nicht war.
lol? Lies bitte nochmal genauer ... Die Funktion ist bereits erfolgreich durchgelaufen, wenn ich das in eine Datei schreibe... das wär' ja Blödsinn sonst!
NOCHMAL (das steht schon da!!!):
int ErrorState = InitiateSystemShutDown();
Jetzt prüfe ich ob die Funktion Erfolg hatte. (If (ErrorState == 0) ...
Jetzt wird in die Datei geschreiben, dass das System heruntergefahren wird (falls ErrorState == 0).Da an dem Rechner keine Maus oder Tastatur dran ist, also da ist überhaupt nix dran, kann ich ausschließen, dass noch jemand "shutdown -a" eintippt
!Aber sei es dsrum, was hindert dich daran einen Timer zu starten und wenn der abgelufen ist ExitWindowsEx aufzurufen?
Denk nochmal nach ... das geht nicht!
Aleternativ könntest du auch in einem zweiten Thread das Fenster suchen und es mit ShowWindow verbergen.
Nach sowas habe ich gesucht ... ich probier mal ob ichs hinbekomme ... thx erstmal ..
MfG
-
dust schrieb:
Und ich kann da nunmal nur reinschreiben, dass erfolgreich heruntergefahren wurde, wenn der Timer schon läuft.
So ein blödsinn...
Und wenn nun jemand "AbortSystemShutdown" aufruft!?
-
dust schrieb:
Da an dem Rechner keine Maus oder Tastatur dran ist, also da ist überhaupt nix dran, kann ich ausschließen, dass noch jemand "shutdown -a" eintippt
!Wenn es eh niemand bedienen kann, was stört Dich dann das Fenster!?
-
Warum nicht SetTimer?
-
Dumme Frage: Startet der PC nicht neu wenn man die Tastatur ausstöpselt (wills grad nicht ausprobieren
)?
-
versteh ich net ? Ist bisserl aus dem Zusammenhang !? ... Hab ich noch nie gehört, dass ein restart gecancelt wird, wenn man die Tastatur rausstöpselt ...
[EDIT
Der Rechner ist ein Präsentationsrechner wo werbung läuft ... da stört so ein äußerst hässliges Window sehr ...
[/EDIT]BTW ist das Problem bereits gelöst ... ShowWindow ist das was ich suchte ... thx!
-
dust schrieb:
versteh ich net ? Ist bisserl aus dem Zusammenhang !? ... Hab ich noch nie gehört, dass ein restart gecancelt wird, wenn man die Tastatur rausstöpselt ...
Ne, nich dass der Neustart abgebrochen wird, sondern dass der PC generell neu gestartet wird wenn man die Tastatur rauszieht... Is mir glaubich mal passiert aber ich weiß es nicht genau.. Ach, ich probiers einfach mal aus^^
Edit: Unter XP tut sich nix

-
@Badestrand: wenn du nen Wackel am Mainboard hast, dann kann sowas vorkommen. Sonst sehe ich keinen Grund

-
@dust: Du brauchst GAR KEIN Fenster! Nimm einfach Multimedia-Timer. Die arbeiten mit 'Stand-Alone-Callbacks'
.