Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.04.2012, 03:51   #1
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию Таймер выключения компа

Есть ли команда отключения компа в С++. В инете искал нашел только стандартную консольную команду шотдаун.
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Старый 21.04.2012, 04:33   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Может стоит познакомится с винапи?
Код:
#include <windows.h>

VOID CALLBACK TimerProc(HWND hwnd,  UINT uMsg,  UINT_PTR idEvent, DWORD dwTime)
{
	ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE, 0);
	PostQuitMessage(0);
}

int _tmain(int argc, _TCHAR* argv[])
{
	UINT delay = 5000;
	SetTimer(0, 0, delay, TimerProc);
	MSG msg;
	while(GetMessage(&msg, 0, 0, 0))
		DispatchMessage(&msg);
	return 0;
}
EUGY вне форума Ответить с цитированием
Старый 21.04.2012, 13:39   #3
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Ну WINAPI я не учил еще. Но теперь понял спасибо
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Старый 22.04.2012, 15:11   #4
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Код:
#include <windows.h>

VOID CALLBACK TimerProc(HWND hwnd,  UINT uMsg,  UINT_PTR idEvent, DWORD dwTime)
{
	ExitWindowsEx(EWX_SHUTDOWN|EWX_FORCE, 0);
	PostQuitMessage(0);
}

int _tmain(int argc, _TCHAR* argv[])
{
	UINT delay = 5000;
	SetTimer(0, 0, delay, TimerProc);
	MSG msg;
	while(GetMessage(&msg, 0, 0, 0))
		DispatchMessage(&msg);
	return 0;
}
Мне кажется такой подход не сработает (точнее сработает но не на всех семействах виня)... Нужно же ведь получить привилегии перед тем как выключить, не!?
coNsept вне форума Ответить с цитированием
Старый 22.04.2012, 15:39   #5
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Ну вот у меня на win7 при включенном UAC под юзером работает, хотя в мсдн чё-то намекается на AdjustTokenPrivileges.
EUGY вне форума Ответить с цитированием
Старый 22.04.2012, 15:42   #6
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Просто я когда-то давно на WinXp SP3 так же пытался вырубить и ничего у меня с этого не вышло до тех пор пока не получил привилегии.
coNsept вне форума Ответить с цитированием
Старый 22.04.2012, 15:46   #7
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Влом тестить, привел как болванку для примера.
PS. Хотя конечно, так рассудить, если у юзера отобрать все права, что он вообще сможет.

Последний раз редактировалось EUGY; 22.04.2012 в 15:52.
EUGY вне форума Ответить с цитированием
Старый 22.04.2012, 15:59   #8
SergeyCh
Пользователь
 
Регистрация: 22.04.2012
Сообщений: 27
По умолчанию

Официальный код MSDN -
How to Shut Down the System
SergeyCh вне форума Ответить с цитированием
Старый 22.04.2012, 16:05   #9
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Цитата:
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);
if (GetLastError() != ERROR_SUCCESS)
return FALSE;
Ну правильно, если недостаточно прав, то облом.
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа таймер для выключения компьютера delphi RS219 Помощь студентам 6 08.07.2011 10:03
Пропала кнопка выключения lilu1559 Помощь студентам 3 25.04.2011 23:05
Функция выключения компьютера Anoobis Win Api 2 12.04.2010 23:53
Выключения монитора joker Компьютерное железо 2 25.01.2009 10:55
Перехват выключения компьютера Спартак Общие вопросы Delphi 3 06.03.2008 15:45