Apagar nt

¿Cómo puedo apagar windows nt desde delphi?
existe una página www.allapi.com
Que aparecen código fuente para manejar la api de windows pero solo es para visual basic, tengo un código en visual basic me funciona bien, pero no se como portarlo a delphi y que precisamente apaga windows nt,
¿Cómo se hace desde delphi?

1 Respuesta

Respuesta
1
Te paso lo que encontré en Trucomanía (bajate el programa desde www.q3.nu).
Para Windows NT
En NT la cosa cambia un poquito, ya que necesitas tener permiso para apagar la máquina...
Aquí tenéis una función que soluciona el tema de los permisos en NT.
function ShutDownWindows(Flag: word): Boolean;
var
TokenPriv: TTokenPrivileges;
H: DWord;
HToken: THandle;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
OpenProcessToken(GetCurrentProcess,
TOKEN_ADJUST_PRIVILEGES,HToken);
LookUpPrivilegeValue(NIL, 'SeShutdownPrivilege',
TokenPriv.Privileges[0].Luid);
TokenPriv.PrivilegeCount := 1;
TokenPriv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
H := 0;
AdjustTokenPrivileges(HToken, FALSE,
TokenPriv, 0, PTokenPrivileges(NIL)^, H);
CloseHandle(HToken);
end;
Result := ExitWindowsEx(Flag, 0);
end;
Si te sirvió, califícame en TodoExpertos, si no, volvé a preguntarme y, sobre todo, si se puede hacer en VB, seguro que se puede en Delphi (en ese caso, mandame el código en VB e intento "traducirlo").
Marcelo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas