![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как перезагрузить NT
aleman © (2002-11-18 19:20:00)Очень хочется перезагрузить компьютер из программы,
OS W2K.
В книжках сказано, что надо применить функцию:
ExitWindowsEx(EWX_REBOOT,0)
а также, что для NT необходимо, чтобы приложение
имело право произвести перезагрузку и для получения
этого права нужно воспользоваться функцией API
AdjustTokenPrivileges.
К сожелению я не сумел "победить" эту функцию.
Если кто знает как перезагрузить W2K из программы,
убедительная просьба сообщить.
С уважением Манчинский Алексей.
Marcus (2002-11-18 19:23:00) [1]var hToken: THandle; tkp: TOKEN_PRIVILEGES;
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY, hToken);
LookupPrivilegeValue(nil, SE_SHUTDOWN_NAME, tkp.Privileges[0].Luid);
tkp.PrivilegeCount := 1;
tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, 0);