Ir al contenido



Foto

¿Cómo reiniciar Windows con Delphi?


  • Por favor identifícate para responder
7 respuestas en este tema

#1 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.404 mensajes
  • LocationRepública Dominicana

Escrito 24 septiembre 2009 - 01:38

Pues eso, este truco les será útil en un momento determinado, por ejemplo, en las actualizaciones de sus sistemas de la cual al terminar requiera reiniciar Windows para que haga efectos, aquí el code muy sencillo usando la API ExitWindowsEx de la Unidad Windows:



delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. begin
  3.   ExitWindowsEx(EWX_REBOOT,0);
  4. end;



Espero la disfruten ;)

Saludos.
  • 0

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 13.936 mensajes
  • LocationMéxico

Escrito 24 septiembre 2009 - 02:25

Hey

Porque no avisas que habia que guardar los documentos con que estaba trabajando :@ :p

Salud OS
  • 0

#3 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 24 septiembre 2009 - 02:29

Jajajajajajajajajajajajajaja !!!!!!

Saludox ! :D
  • 0

#4 escafandra

escafandra

    Advanced Member

  • Moderadores
  • PipPipPip
  • 3.831 mensajes
  • LocationMadrid - España

Escrito 24 septiembre 2009 - 03:57

Buen ejemplo. Para que la aplicación pueda cerrar Windows debe ajustarse el privilegio SeShutdownPrivilege. La API ExitWindowsEx tiene algún uso también interesante:


php
  1. ExitWindowsEx(0,0); // EWX_LOGOFF - Cierra los procesos y la sesión del usuario.
  2. ExitWindowsEx(2,0); // EWX_REBOOT - Reboot. Debes tener privilegio SE_SHUTDOWN_NAME
  3. ExitWindowsEx(8,0); // EWX_POWEROFF - Apagar. Debes tener privilegio SE_SHUTDOWN_NAME


Si os apetece una forma brutal de apagar Windows mirar esto (¿Acierto o error?). Pero Ojo, guardar todo el trabajo antes.... (6) :p ;) :D

Saludos.
  • 0

#5 razadi

razadi

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 681 mensajes
  • LocationMéxico D.F.

Escrito 25 septiembre 2009 - 07:42

jajaja, que onda?, deberas eh, primero debemos salvar lo que se tenga trabajando, porque si no...

saludos.
  • 0

#6 rgstuamigo

rgstuamigo

    Member

  • Miembros
  • PipPip
  • 32 mensajes
  • LocationSanta Cruz-Bolivia

Escrito 03 noviembre 2009 - 01:56

En todo caso si se desea apagar , reiniciar o suspender lo mejor es hacerlo de esta manera y no se necesita tener privilegios específicos 8-|:


delphi
  1. uses ComObj;
  2. ...
  3. ...
  4. procedure TForm1.Button1Click(Sender: TObject);
  5. var
  6.   Shell: OleVariant;
  7. begin
  8.   Shell := ComObj.CreateOleObject('shell.application');
  9.   Shell.ShutDownWindows;
  10. end;


Saludos... (y)

  • 0

#7 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.404 mensajes
  • LocationRepública Dominicana

Escrito 03 noviembre 2009 - 05:46

Excelente código amigo rgstuamigo (y)
  • 0

#8 baiun

baiun

    Newbie

  • Miembros
  • Pip
  • 1 mensajes
  • LocationESPAÑA

Escrito 26 octubre 2012 - 03:47

muchas gracias por el aporte
  • 0