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

Вниз

Как вырубить питание?   Найти похожие ветки 

 
Black   (2003-05-23 14:24) [0]

Мастера, подскажите пожалуйста как выключить компьютер?


 
clickmaker ©   (2003-05-23 14:42) [1]

ExitWindowsEx(0, EWX_POWEROFF)


 
Song ©   (2003-05-23 14:51) [2]

Нажать на кнопку Power


 
Opuhshii ©   (2003-05-23 18:44) [3]

2Black (23.05.03 14:24)
вопрос этот поднимается часто,.. но все же
для Win95/98
ExitWindowsEx(0, EWX_POWEROFF)

для NT-систем для процесса необходимо установить привелегию на выключение компьютера SeShutdownPrivilege

var
ProcessToken:THandle;
aTOKEN_PRIVILEGES:TTokenPrivileges;
ShutDownLuid:TLargeInteger;
Dummy:Dword;
....
OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,ProcessToken);
LookupPrivilegeValue("","SeShutdownPrivilege",ShutDownLuid);
with aTOKEN_PRIVILEGES do begin
PrivilegeCount:=1;
Privileges[0].Luid:=ShutDownLuid;
Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED;
end;
if AdjustTokenPrivileges(ProcessToken,FALSE,aTOKEN_PRIVILEGES,0,nil,Dummy) then
ExitWindowsEx(EWX_FORCE or EWX_SHUTDOWN or EWX_POWEROFF,0);
...

AdjustTokenPrivileges активизирует уже имеющиеся у процесса привелегии, но не добавляет новых, т.е. если процесс создан пользователем не имеющим прав на выключение компьютера, соответственно SeShutdownPrivilege у процесса не будет.


 
Vit@ly ©   (2003-05-23 20:15) [4]

Для Win95/98 можно и так:
WinExec(PChar("rundll32 shell32,SHExitWindowsEx 1"), SW_Show);




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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
1-10195
lovres
2003-07-23 10:01
2003.08.04
Child - окна MDI


4-10507
Pashik
2003-06-01 13:36
2003.08.04
Добавление юзера к файлу


11-10151
Gandalf
2002-11-05 22:01
2003.08.04
Как вам SyntaxEdit?


1-10281
Beginner3000
2003-07-16 00:42
2003.08.04
Вопросы по строкам


4-10500
DMN
2003-05-30 08:28
2003.08.04
Каталоги несчастные!