Форум программистов, компьютерный форум CyberForum.ru

Не выключается компьютер! - C++

Восстановить пароль Регистрация
 
Dim_ON
0 / 0 / 0
Регистрация: 05.01.2010
Сообщений: 9
05.01.2010, 12:08     Не выключается компьютер! #1
Вот так я делаю
Код
....
ExitWindows(EWX_POWEROFF, NULL);
....
так я получаю SE_SHUTDOWN_NAME(WinXP/NT/2k)
Код
....
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);	
}
...
происходит LOGOFF и все.... а должен выключится
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2010, 12:08     Не выключается компьютер!
Посмотрите здесь:

компьютер генерирует число из 4 неповторяющихся чисел C++
компьютер или винда виновата! C++
C++ Шахматы(компьютер-компьютер)
C++ Класс товар-компьютер.
C++ Компьютер не хочет подавать признаки жизни
Компьютер угадывает число C++
C++ Cin и компьютер без MSVS
Программно выключить компьютер C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gasanov2003
0 / 0 / 0
Регистрация: 26.01.2010
Сообщений: 31
01.02.2010, 10:10     Не выключается компьютер! #2
Сделай так. Я проверял работает

HANDLE hToken;
TOKEN_PRIVILEGES tkp;

if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
printf('OpenProcessToken error');

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)
printf('AdjustTokenPrivileges error');

if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE, 0))
printf('ExitWindowsEx error');
Yandex
Объявления
01.02.2010, 10:10     Не выключается компьютер!
Ответ Создать тему
Опции темы

Текущее время: 23:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru