Продолжение
для перегрузки используем EWX_REBOOT
для выключения питания EWX_POWEROFF
если нужно экстренно выключит/перегрузить комп, используем вышеуказаные влаги в сочетании с EWX_FORCE
Второй параметр используется только в XP для указания причины перезагрузки.
В NT/2000/XP для использования ExitWindowsEx необходимо иметь
привелегию SE_SHUTDOWN_NAME, по умолчанию не установленную
даже для администратора. Установить её можно нижеприведённым кодом.
HANDLE hToken;
TOKEN_PRIVILEGES* NewState;
OpenProcessToken (GetCurrentProcess (), TOKEN_ADJUST_PRIVILEGES,
&hToken);
NewState = (TOKEN_PRIVILEGES*) malloc (sizeof
(TOKEN_PRIVILEGES) + sizeof (LUID_AND_ATTRIBUTES));
NewState->PrivilegeCount = 1;
LookupPrivilegeValue (NULL, SE_SHUTDOWN_NAME,
&NewState->Privileges[0].Luid);
NewState->Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges (hToken, FALSE, NewState, NULL, NULL, NULL);
free (NewState);
CloseHandle (hToken);
Вот как мне переделать ето на Delphi в С работает на Ура!!!!
|