Respuesta original: octubre de 2008
También tienes todos los " rundll32.exe shell32.dll
" serie:
(ver actualización a continuación)
rundll32.exe user.exe,**ExitWindows**
[Apagado rápido de Windows]
rundll32.exe user.exe,**ExitWindowsExec**
[Reiniciar Windows]
rundll32.exe shell32.dll,SHExitWindowsEx n
donde n
significa:
- 0 -
LOGOFF
- 1 -
SHUTDOWN
- 2 -
REBOOT
- 4 -
FORCE
- 8 -
POWEROFF
(se puede combinar -> 6 = 2 + 4 FORCE REBOOT
)
Actualización de abril de 2015 (más de 6 años):
1800 INFORMACIÓN señala amablemente en los comentarios :
No lo use rundll32.exe
para este propósito. Espera que la función que pasó en la línea de comando tenga una firma de método muy específica; no coincide con la firma del método de ExitWindows
.
Raymond CHEN escribió:
La firma de la función requerida para las funciones llamadas por rundll32.exe
es:
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
Eso no ha impedido que la gente use rundll32
para llamar funciones aleatorias que no fueron diseñadas para ser llamadas por rundll32
, como user32 LockWorkStation
o user32 ExitWindowsEx
.
(Uy)
La firma de función real para ExitWindowsEx es:
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
Y para hacerlo más claro como el cristal:
Rundll32
es un remanente de Windows 95, y ha quedado en desuso al menos desde Windows Vista porque viola muchas pautas modernas de ingeniería.