[C++] windows nachrichten

rook

Erfahrenes Mitglied
wie kann ich windows herunter fahren? :)
ich hab das mal mit SendMessage() versucht..
aber es passiert nichts, wenn ich WM_QUERYENDSESSION oder WM_ENDSESSION sende...
vieleicht sende ich sie auch nur an das falsche handel?

ich hab mal versucht, den Arbeitsplatz zu "zerstören".. das klappt auch wunderbar..
Code:
HWND lhwnd = FindWindow(NULL, "Arbeitsplatz");
SendMessage(lhwnd, WM_DESTROY, wParam, lParam);

ich hab es deshalb mit WM_DESTROY versucht, weil bei WM_CLOSE nichts passiert ist, es hat nur einmal kurz "ding" gemacht :p
naja, wie dem auch sei...

ich muss windows auch nicht unbedingt runterfahren indem ich eine message sende, falls es noch einen anderen weg gibt, auser auf eine externe datei wie z.b. shutdown.exe zuzugreifen.. dann ist es auch inordnung... :rolleyes:
 
-

Als Alternative dazu:
Code:
ExitWindowsEx(uFlags,0);

Für uFlags:
EWX_REBOOT - Neustart
EWX_LOGOFF - Abmelden
EWX_POWEROFF - Ausschalten
 
danke, das is nett =)
das geht supa...... *freu*

#edit:

um ehrlich zu sein, hatte ich am anfang nur EWX_LOGOFF getestet, das klappt wunderbar...
doch bei EWX_REBOOT und EWX_POWEROFF passiert nichts... alles still... :(
hab das bei win2k und winxp probiert....


woran könnte das denn liegen? heeelp....
 
Zuletzt bearbeitet:
Versuch doch mal mit GetLastError() herauszufinden warum das nicht geht.
GetLastError() gibt ein DWORD zurück, das kannst du mit FormatMessage() "zu einem String machen". Oder einfacher zu "Debug zwecken" genügt auch den Wert der von GetLastError() zurückkommt in der WINERROR.h nachschauen.

Gruss Homer
 
hm... is irgendwie bescheuert, denn die daten sind mit einem logoff genauso im eimer, als wenn ich einen reboot mach :)

tja, und kann man so einem programm gewisse "rechte" verteilen?
gibt es vieleicht auch eine möglichkeit, einen prozess so zu starten, das er vom benutzer nicht wieder beendet werden kann, sondern nur vom system?
 
Na ja, aber nach einem Shutdown ist der Rechner z.B. nicht mehr über's Netzwerk erreichbar... (ja, ich weiß, WOL ;))

Schau dir mal in der MSDN-Doku die Beschreibung von ExitWindowsEx an, da steht was zu den Privilegien.
 
Sorry...aber da steig ich noch immer nicht ganz hinter :-|
Habe zwar soweit erkennen können, dass ich AdjustTokenPrivileges() nutzen muss, aber wie kann ich denn nun genau was dran ändern? Woher kriege ich den TokenHandle?

Bin doch noch etwas neuer in der grossen weiten VC++Welt als ich mir erhoffte :-/
 
Zuletzt bearbeitet:
Zurück