Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: CL | DM;

Вниз

Как в XP выключить компьютер и монитор ?   Найти похожие ветки 

 
Infinity2 ©   (2002-09-21 02:26) [0]

ExitWindowsEx(EWX_POWEROFF, 0)у меня не работает. Может я что то не правельно сделал. И ещё как выключить монитор. Стандарния функия которая работает под 9x не работает XP.


 
ZZ ©   (2002-09-21 04:11) [1]

Goto FAQ or Поиск


 
megadeth   (2002-09-21 10:40) [2]

Даю пример на выключение: XP, 2000, NT(правда на C++)
Надо сначала получить привилегии

void __fastcall GetPrivileges(char* privilege, bool bDisable)
{

HANDLE hToken;
TOKEN_PRIVILEGES tp;

if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken)){
MessageBox(0, "OpenProcessToken fail!", NULL, 0+0x40);
}

if(!LookupPrivilegeValue(NULL, privilege, &tp.Privileges[0].Luid)){
MessageBox(0, "LookupPrivilegeValue fail!", NULL, 0+0x40);
}
tp.PrivilegeCount = 1;
tp.Privileges[0].Attributes = bDisable ? 0: SE_PRIVILEGE_ENABLED;

if(!AdjustTokenPrivileges(hToken, FALSE, &tp, 0,(PTOKEN_PRIVILEGES)NULL, 0)){
MessageBox(0, "AdjustTokenPrivileges fail!", NULL, 0+0x40);
}

}

а потом:
ExitWindowsEx(EWX_FORCE | EWX_POWEROFF, 0);
ExitWindowsEx(EWX_FORCE | EWX_REBOOT, 0);




 
Infinity2 ©   (2002-09-21 14:35) [3]

В том то и прикол что это не работает как надо. Мне надо ВЫКЛЮЧИТЬ ПИТАНИЕ . А из Windows то вы ходит, но на экран "Тепер выключите компьтер". А мне надо что бы системный блок выключился. Материнка соответственно ATX. Так делает XP по умолчанию Start>Завершение работы > Shutdown


 
J0niK   (2002-09-21 16:08) [4]

Программе необходима привилегия SeShutdownPrivilege, позволяющая ей завершить работу WinNT. По умолчанию она доступна любой программе, работающей на данном компьютере, но ее необходимо получить.

procedure shutdown;
var
hToken:THandle;
tkp,PrevState:_TOKEN_PRIVILEGES;
k:DWORD;
begin
OpenProcessToken(GetCurrentProcess, TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,hToken);
// Получаем LUID для привилегии "SeShutdownPrivilege".
LookupPrivilegeValue(nil, "SeShutdownPrivilege", tkp.Privileges[0].Luid);
tkp.PrivilegeCount:=1;
tkp.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
// Добавляем привилегию к нашему процессу
AdjustTokenPrivileges(hToken, FALSE, tkp, SizeOf(PrevState), PrevState, k);
ExitWindowsEx(EWX_FORCE+EWX_SHUTDOWN,0);
end;


 
infinity2 ©   (2002-09-23 21:03) [5]

J0niK большое спасибо!


 
sergos ©   (2002-09-24 02:49) [6]

А можно ль чего придумать чтобы по сети комп выключить (если права у юзера соответсвующие)???


 
Song ©   (2002-09-24 09:01) [7]

2sergos © (24.09.02 02:49)
В конференции "Сети" я вчера отвечал на этот вопрос.


 
ZZ ©   (2002-09-24 11:34) [8]

Song
КОД ДАВАЙ!!! :))))


 
sergos ©   (2002-09-25 02:35) [9]

2 song
InitiateSystemShutDown() не выключает питание :-(
А хотелось бы чтобы оно отключалось. Как быть?


 
Song ©   (2002-09-25 11:19) [10]

bRebootAfterShutdown

Specifies whether the computer is to restart immediately after shutting down. If this parameter is TRUE, the computer is to restart. If this parameter is FALSE, the system flushes all caches to disk, clears the screen, and displays a message indicating that it is safe to power down.

Видимо она не работает с блоками ATX.


 
Beglec ©   (2002-09-26 05:03) [11]

ShellExecute(HWND(nil),"open","shutdown.exe","-s -t 0","",SW_SHOWNORMAL);

Работает нормально именно для XP. В остальных Win такой фишки нет.
Данная прога идет стандарной и много позволяет
shutdown.exe /?
Там есть хороший help.
Может отключать удаленную машину.


 
ZZ ©   (2002-09-26 10:02) [12]

Beglec
Юмор.. смешно.. :) А угадай чем пользуется эта программка?



Страницы: 1 вся ветка

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.018 c
14-82956
Magic
2002-11-04 15:56
2002.11.25
Хочу организовать свое дело в области...


1-82795
_Nicola_
2002-11-13 15:42
2002.11.25
Как узнать, есть ли опред. property у компонента?


4-83069
svv
2002-10-14 19:19
2002.11.25
Необходимо удалить несколько записей из реестра...


3-82613
Ryser
2002-11-05 13:37
2002.11.25
Как обновить TQuery не потеряв при этом текущей записи


7-83022
progger
2002-09-24 19:48
2002.11.25
Как получить время создания файла?