Вопрос
Как можно заставить компьютер перезагрузиться или выключится?
Ответ
Перезагрузить — ExitWindowsEx(EWX_REBOOT,1);
Shadow
На Delphi это будет выглядеть так:
procedure ShutDownSystem;
var
Handle,Ph: THandle;
pid : DWORD;
luid : TLargeInteger;
priv : TOKEN_PRIVILEGES;
ver : TOSVersionInfo;
begin
ver.dwOSVersionInfoSize:=Sizeof(ver);
GetVersionEx(ver);
if ver.dwPlatformId=VER_PLATFORM_WIN32_NT then begin
pid:=GetCurrentProcessId;
ph := OpenProcess(PROCESS_ALL_ACCESS,false,pid);
if OpenProcessToken(ph,TOKEN_ADJUST_PRIVILEGES,handle) then
if LookupPrivilegeValue(nil,'SeShutdownPrivilege',luid) then begin
priv.PrivilegeCount:=1;
priv.Privileges[0].Attributes:= SE_PRIVILEGE_ENABLED;
priv.Privileges[0].Luid:=luid;
AdjustTokenPrivileges(handle,false,priv,0,nil,pid);
end;
end;
ExitWindowsEx(EWX_POWEROFF+EWX_FORCE ,0);
end;
Copyright 2000-2004 Сообщество Чайников
Контактная информация