Jump to content


Photo

[TRUCO DELPHI] Apagar Windows.


  • Please log in to reply
3 replies to this topic

#1 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 posts
  • Location127.0.0.1

Posted 01 December 2016 - 07:48 AM

[TRUCO DELPHI] Apagar Windows.


delphi
  1. var
  2. tp : TTokenPrivileges;
  3. Token : THandle;
  4. begin
  5. OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, Token);
  6. tp.PrivilegeCount := 1;
  7. if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tp.Privileges[0].LUID) then
  8. begin
  9. tp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
  10. AdjustTokenPrivileges(Token, False, tp, 0, nil, nil);
  11. end;
  12. CloseHandle(Token);
  13. ExitWindowsEx(EWX_FORCEIFHUNG or EWX_SHUTDOWN, 0);
  14. end.

Saludos!


  • 2

#2 Agustin Ortu

Agustin Ortu

    Advanced Member

  • Moderadores
  • PipPipPip
  • 831 posts
  • LocationArgentina

Posted 01 December 2016 - 03:53 PM

Para el que le interese, he creado una unit con este mismo mecanismo pero simplificando su uso. Es mucho mas comodo disponer de una funcion WindowsPowerOff que usar tanto codigo
 

Tambien se dispone de una funcion para reiniciar y cerrar sesion

Unidad Win.Power
 


Edited by Agustin Ortu, 01 December 2016 - 03:53 PM.

  • 1

#3 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4107 posts
  • LocationMadrid - España

Posted 01 December 2016 - 04:56 PM

Y los que deseen ver distintas aplicaciones de la API ExitWindowsEx pueden pasarse por este tema que inició enecumene en el que ya se trató el asunto.

 

Saludos.


  • 1

#4 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 posts
  • Location127.0.0.1

Posted 02 December 2016 - 06:53 AM

Excelente, Simplificar es lo que buscamos..

 

Saludos!


  • 1




IP.Board spam blocked by CleanTalk.