Консультация № 53720
30.08.2006, 00:17
0.00 руб.
0 3 3
Здравствуйте, уважаемые эксперты.
Надо мне в моей проге сделать перезагрузку компа (например, с помощью ExitWindowsEx). Чтобы её сотворить, мой процесс должен иметь "SE_SHUTDOWN_NAME privilege". Полез разбираться с AdjustTokenPrivileges и ничего не понял. Хотелось бы получить пример того, как можно "разрешить" своему процессу перезагрузить компутер.

Обсуждение

Неизвестный
30.08.2006, 00:22
общий
это ответ
Здравствуйте, AbVoid!
смотрите приложение...
Удачи!

Приложение:
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); ExitWindowsEx(EWX_REBOOT, NULL); // EWX_POWEROFF // EWX_REBOOT|EWX_FORCE // EWX_POWEROFF|EWX_FORCE
Неизвестный
30.08.2006, 01:13
общий
это ответ
Здравствуйте, AbVoid!

http://vb-helper.com/howto_shutdown_exitwindowsex.html
http://vbnet.mvps.org/index.html?code/system/exitwindowsex.htm
http://www.answers.com/topic/exit-windows
http://www.pinvoke.net/default.aspx/user32.ExitWindowsEx
http://www.winehq.org/pipermail/wine-patches/2005-September/020576.html
http://www.codeproject.com/system/StayON.asp
http://www.sysman.ru/index.php?showtopic=4310

А вообще-то не следует пренебрегать Google. Удачи.
Неизвестный
30.08.2006, 10:54
общий
это ответ
Здравствуйте, AbVoid!
Вот вам пример: http://www.sysman.ru/index.php?showtopic=3657
Форма ответа