Форум — Ответы ( К темам )
? | Raven: Помогите отключить Комп в системеме NT (какими функ-ми это можно сдел) (28-04-2003 10:50:19) |
Я написал прогу, которая отключает, перезагружает комп и тп. Я использовал функции ExitWindowsEx(EWX_REBOOT, 0) ExitWindowsEx(EWX_SHUTDOWN, 0); Но, как оказалось, они не хотят работать в системах NT. Я пречел в help'е, что для того чтобы они заработали в NT, надо объявить какие-то PRIVILEGES (SE_SHUTDOWN_NAME privilege). Примера там не было и у меня не выходит, поэтому прошу Вас подсказать как можно перезагрузить Комп в NT (Windows XP). Помогите разобраться с этими PRIVILEGE или дайте другое решение. Благодарю!!! | |
Георгий (28-04-2003 23:46:30) | |
а зачем 2-й пост сделал? ответ см. там | |
Dr.Phoenix (06-05-2003 14:21:04) | |
Привелегии можно взять так: /////////////////////// HANDLE hToken; LUID seshutdownnameValue; TOKEN_PRIVILEGES tkp; if ( ! OpenProcessToken( GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken ) ) return; if ( !LookupPrivilegeValue( NULL, SE_SHUTDOWN_NAME, &seshutdownnameValue ) ) { CloseHandle( hToken ); return; } tkp.PrivilegeCount = 1; tkp.Privileges[0].Luid = seshutdownnameValue; tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; AdjustTokenPrivileges( hToken, FALSE, &tkp, sizeof tkp, NULL, NULL ); CloseHandle( hToken ); ///////////////////// А дальше уже ExitWindowsEx(EWX_SHUTDOWN, 0); У меня так работает. А ваще читай FAQ, их нормальных всего штуки 4, и там все есть про это... |