Ir al contenido


Foto

[TRUCO DELPHI] Apagar Windows.


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

#1 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 mensajes
  • Location127.0.0.1

Escrito 01 diciembre 2016 - 07:48

[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 mensajes
  • LocationArgentina

Escrito 01 diciembre 2016 - 03:53

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
 


Editado por Agustin Ortu, 01 diciembre 2016 - 03:53 .

  • 1

#3 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 01 diciembre 2016 - 04:56

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 mensajes
  • Location127.0.0.1

Escrito 02 diciembre 2016 - 06:53

Excelente, Simplificar es lo que buscamos..

 

Saludos!


  • 1




IP.Board spam blocked by CleanTalk.