La Web del Programador: Comunidad de Programadores
 
    Pregunta:  20691 - REINICIAR EL SISTEMA CON TURBO PASCAL
Autor:  CARLOS ALBERTO G. HERNANDEZ
HOLA, ESPERO QUE ALGUIEN ME PUEDA AYUDAR Y ME DIGA SI EXISTE UN CODIGO PARA QUE SE PUEDA REINICIAR EL SISTEMA EN TURBO PASCAL 7.0

SE LOS AGRADECERIA ENORMEMENTE...

  Respuesta:  Roberto Garcia Garcia
Si, asi es, para apagar, reiniciar y cerrar sesion en windows se pueden usar lo siguientes procedimientos

procedure apagar;
begin
swapvectors
exec('c:\windows\rundll32.exe','user.exe,ExitWindows');
swapvectors;
halt(1);
end;

procedure reiniciar;
begin
swapvectors
exec('c:\windows\rundll32.exe','shell32.dll,SHExitWindowsEx 2');
swapvectors;
halt(1);
end;

procedure cerrar_sesion;
begin
swapvectors
exec('c:\windows\rundll32.exe','shell32.dll,SHExitWindowsEx');
swapvectors;
halt(1);
end;

para mas informacion visitia http://mx.geocities.com/antrahxg

en la seccion de pascal



  Respuesta:  Roberto Garcia Garcia
En el escritorio de windows se puede crear un acceso directo al siguiente comando

C:\Windows\rundll32.exe shell32.dll,SHExitWindowsEx2

Con este icono se puede reiniciar windows con darle un click, el punto es este (No estoy seguro que funciones, pero es una idea).

Usar la funcion exec de pascal (dentro de la unidad DOS) accesar al archivo rundll32.exe y pasar como parametro
"shell32.dll,SHExitWindowsEx2" y con esto reiniciaria el sistema si trabajas en windows.
el problema es que yo todavia no he podido usar la funcion "exec", pero en las preguntas contestadas hay varios comentarios acerca de como usarlo.

Espero te sirva

P.d. si puede hacer que reinicie con la siguiente linea puedes apagar la maquina (trabajando desde windows).

C:\Windows\rundll32.exe user.exe,ExitWindows