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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2007, 13:58   #1
Yar
Пользователь
 
Регистрация: 03.08.2007
Сообщений: 37
Вопрос Перезагрузка компа, ждущий и спящий режим

Как мне перезагрузить комп? Как перевести в ждущий или спящий режим?
Yar вне форума Ответить с цитированием
Старый 21.08.2007, 08:23   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Ф-ия ExitWindowsEx(uFlags:UINT; dwReserved:DWORD):BOOL; stdcall;
параметр dwReserved не используется
а паарметр uFlags может иметь следующие значения:

EWX_FORCE форсировать выключение компа
EWX_LOGOFF сменить пользователя
EWX_POWEROFF выключить комп
EWX_REBOOT перезагрузить систему
EWX_SHUTDOWN выключить комп но не выкл питание

пример перезагрузки
ExitWindowsEx(EWX_REBOOT,0);
SERG1980 вне форума Ответить с цитированием
Старый 21.08.2007, 10:28   #3
Net
;-)
Пользователь
 
Регистрация: 18.07.2007
Сообщений: 69
По умолчанию

Для Windows NT нужно для этого установить требуемые привилегии, потом выполнять функцию:
Код:
function NTSetPrivilege(const Privilege:string):Boolean;
var Token:THandle;
	TokenPriv, PrevTokenPriv:TOKEN_PRIVILEGES;
	ReturnLength:Cardinal;
begin
	Result:=False;
	if Win32Platform <> VER_PLATFORM_WIN32_NT then Exit;

	if OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES + TOKEN_QUERY, Token) then
	try
		if LookupPrivilegeValue(nil, PChar(Privilege), TokenPriv.Privileges[0].Luid) then
		begin
			TokenPriv.PrivilegeCount:=1;
			TokenPriv.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
			ReturnLength:=0;
			PrevTokenPriv:=TokenPriv;
			AdjustTokenPrivileges(Token, False, TokenPriv, SizeOf(PrevTokenPriv), PrevTokenPriv, ReturnLength);
		end;
	finally
		CloseHandle(Token);
	end;
	Result:=True;
end;

NTSetPrivilege('SEShutdownPrivilege');
ExitWindowsEx({нужный параметр - EWX_REBOOT и т.д.}, 0);
Net вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перезагрузка компа Pusher Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 14 19.02.2008 20:54
Перезагрузка Windows agatos Свободное общение 7 21.01.2008 17:45
Перезагрузка ListBox Kocapb Общие вопросы C/C++ 2 17.12.2007 10:44
Перезагрузка LAFam Win Api 13 09.12.2007 09:15
заставить компьютер перейти в спящий и ждущий режим Никки Win Api 8 03.12.2007 08:47