Вопрос
Как вырубить комп с вынь2000 из своей программы? — Не понял из справки по WinAPI как получить права для этого, в 9Х получилось.
Ответ
procedure NTShutdown; var TokenHandle: Cardinal; RetLength: Cardinal; TP: TTokenPrivileges; begin OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
TokenHandle); if LookupPrivilegeValue(nil, 'SeShutdownPrivilege', TP.Privileges[0].Luid) then begin TP.PrivilegeCount:=1; TP.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
RetLength:=0; If AdjustTokenPrivileges(TokenHandle, FALSE, TP, 0, nil, RetLength) then begin If not SetProcessShutdownParameters($4FF,
SHUTDOWN_NORETRY) then begin
MessageBox(0, 'Shutdown failed', nil, MB_OK or MB_ICONSTOP); end else begin
ExitWindowsEx(EWX_FORCE or EWX_SHUTDOWN, 0); end; exit; end; end;
MessageBox(0, 'Access denied', nil, MB_OK or MB_ICONSTOP); end;
Novikov Dmitry.
Copyright 2000-2004 Сообщество Чайников
Контактная информация