Windows herunterfahren melden
-
ja und dann? wie gebe ich dann die meldung aus dass man sich bitte nur abmelden soll, dazu dann noch auf einen knopf drücken kann der dass herunterfahren verhindert?also meldung ausgeben weiss ich ja normalerweise, aber auch so dass die meldung steht und nicht heruntergefahren wird, bis mann sich eben für das herunterfahren entschieden hat oder nicht.
-
Die Meldung könnte ein Dialog oder eine MessageBox sein, zum Herunterfahren-verhindern kannst du dir mal die Nachricht bei der MSDN anschauen.
-
Xadine schrieb:
Wenn der Benutzer jetzt den PC herunterfährt möchte ich dass dem Benutzer gesagt wird "achtung es wird gerade gerechnet, bitte nur abmelden".
Dein Programm wird übrigens auch beim Abmelden beendet, wenn es sich nicht gerade um einen Dienst handelt.
-
zum dienst,
ist es schwiereig bzw. aufwendig eine mfc anwedung zum dienst umzuschreiben?
hab keine lust das ganze nochmal zu schreiben, hab monate gebraucht damit das ding läuft.
ausserdem wenn ich mein programm in den taskplaner von windows hinzufüge und sage beim starten von windows(ohne anmeldung) starten dann funktioniert dass nicht so richtig bis jetzt. liegt das daran weil ich es nicht als dienst gemacht habe?
gruss
-
WM_ENDSESSION sollte man dabei auch beachten (siehe MSDN).
Zum Dienst:
Wenn Du Deinen Code schön in Klassen verpackt hast, dann sollte es ja nicht so ein Problem sein. Allerdings kenne ich Deine Applikation nicht.Alternativ könnte man auch versuchen mit Hilfe von einem Tool aus dem Windows Resource Kit. Stichwort ist hier meine ich "srvany.exe"
Damit habe ich aber null Erfahrungen. Andere Tools gab es dazu meine ich auch.
-
Xadine schrieb:
zum dienst,
ist es schwiereig bzw. aufwendig eine mfc anwedung zum dienst umzuschreiben?
hab keine lust das ganze nochmal zu schreiben, hab monate gebraucht damit das ding läuft.
ausserdem wenn ich mein programm in den taskplaner von windows hinzufüge und sage beim starten von windows(ohne anmeldung) starten dann funktioniert dass nicht so richtig bis jetzt. liegt das daran weil ich es nicht als dienst gemacht habe?
grussEin Dienst hat keine Oberfläche! Das sollte Dir erstmal klar sein.
Was ist Dein Problem wenn der Task-Manager Dein Programm startet?
-
ich hab kein problem damit das der taskmanager mein programm startet. aber es wurde dochj hier geschrieben das mein programm bei der abmeldung eines benutzers auch beendet wird.
-
Nur ein Dienst kann ohne Anmledunglaufen, aber ein Dienst hat keine GUI. Die GUI muss sperat zum Dienst in einem eigenen Programm laufen und per IPC mit dem Dienst kommunizieren.
-
mein programm hat jetzt aber eine gui, kann man daraus nun kein dienst mehr machen?
-
also ich google schon ne weile, trotzdem finde ich nicht das richtige.
Im MFC klassenassistenten finde ich zb. OnCommand aber sowas wie OnQueryEndSession finde ich nicht. Wie kann ich denn jetzt in meinem MFC Dialog die WM_QUERYENDSESSION nachricht abfangen und darauf reagieren.hab code gefunden der so aussieht
LRESULT CALLBACK DialogProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) // hier wird die nachricht abgefangen { case WM_INITDIALOG: // ... return true; case WM_QUERYENDSESSION: if(MessageBox(hwnd, "Soll Windows wirklich beendet werden?", "Test", MB_YESNO| MB_ICONQUESTION) == IDYES) { return false; // windows wird herruntergefahren... } return true; // windows wird weiterhin ausgeführt... ... } } int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { DialogBox (hInstance, MAKEINTRESOURCE(IDD_MYFORM), 0, (DLGPROC) DialogProc); return true; }weiss nicht wie ich damit umgehen muss in meinem dialog, hab ja zb, keine winmain
aber die mfc hat ja auch ne nachrichtenverarbeitungsroutine, kann mir da jemand bitte
helfen?