Пытаюсь програмно выключить комп.
| Код | ..... ExitWindows(EWX_SHUTDOWN, NULL); .....
|
Так я получаю SE_SHUTDOWN_NAME
| Код | .... BOOL SetShutdownPrivelege(HANDLE hProc){ LUID luid; TOKEN_PRIVILEGES tp; HANDLE hToken;
if(!OpenProcessToken(hProc, TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY, &hToken)) return FALSE; if(!LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &luid)){ CloseHandle(hToken); return FALSE; } tp.PrivilegeCount = 1; tp.Privileges[0].Luid = luid; tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; return AdjustTokenPrivileges(hToken, FALSE, &tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL); } ....
|
после этого просто завершается сеанс и все.... |