Ursprüngliche Antwort: Okt. 2008
Sie haben auch alle " rundll32.exe shell32.dll
" serie:
(siehe Update unten)
rundll32.exe user.exe,**ExitWindows**
[Schnelles Herunterfahren von Windows]
-
rundll32.exe user.exe,**ExitWindowsExec**
[Windows neu starten]
rundll32.exe shell32.dll,SHExitWindowsEx n
où n
steht für:
- 0 -
LOGOFF
- 1 -
SHUTDOWN
- 2 -
REBOOT
- 4 -
FORCE
- 8 -
POWEROFF
(kann kombiniert werden -> 6 = 2+4 FORCE REBOOT
)
Update April 2015 (6+ Jahre später):
1800 INFORMATIONEN weist höflich darauf hin in den Kommentaren :
Verwenden Sie nicht rundll32.exe
zu diesem Zweck. Es erwartet, dass die Funktion, die Sie auf der Kommandozeile übergeben haben, eine ganz bestimmte Methodensignatur hat - sie stimmt nicht mit der Methodensignatur von ExitWindows
.
Raymond CHEN schrieb:
Die erforderliche Funktionssignatur für Funktionen, die von rundll32.exe
ist:
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
Das hat die Leute nicht davon abgehalten, die rundll32
um beliebige Funktionen aufzurufen, die nicht für den Aufruf durch rundll32
, wie user32 LockWorkStation
o user32 ExitWindowsEx
.
(oops)
Die eigentliche Funktionssignatur für ExitWindowsEx lautet:
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
Und um es kristallklar zu machen:
Rundll32
ist ein Überbleibsel von Windows 95 und wird spätestens seit Windows Vista nicht mehr verwendet, da es gegen eine Reihe moderner technischer Richtlinien verstößt.