Здравствуйте jia, Вы писали:
jia>...use prawil'no.... sistemu Wu wyklyuchili... ter' ostalos'toka komp wyklyuchit, dlya etogo aktiwirujte w BIOSe APM(AdwancedPowerManagement).....
jia>i use puchkom budet.....
На самом деле нет — я попробовал.
Комп не выключается, а говорит "нажмите батон, чтобы вырубить",
даже если в биосе все впорядке.
Во кусок кода, который вырубает комп:
HANDLE hToken; // handle to process token
TOKEN_PRIVILEGES tkp; // pointer to token structure
// Get the current process token handle so we can get shutdown privilege.
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return;
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME, &tkp.Privileges[0].Luid);
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0, (PTOKEN_PRIVILEGES) NULL, 0);
if (GetLastError() != ERROR_SUCCESS)
return;
// Вот какая-то из этих двух ф-ий выключает комп, какая-то нет
// попробуй. Еще посмотри флаги у обоих ф-ий
InitiateSystemShutdown(NULL, NULL, 0, TRUE, TRUE);
ExitWindowsEx(EWX_POWEROFF|EWX_FORCE, NULL);