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

Вниз

Помогите пожалуйста с проблемой выключения компа.   Найти похожие ветки 

 
NOX   (2004-06-26 14:50) [0]

Вызываю ExitWindowsEx( EWX_POWEROFF, 0 )  или с флагом EWX_SHUTDOWN, но ничего не происходит, а если поставить флаг EWX_FORCE , то происходит просто завершение сеанса, а не включение. В чём дело.
Спасибо.


 
GuAV ©   (2004-06-26 14:55) [1]


> ExitWindowsEx( EWX_POWEROFF, 0 )  или с флагом EWX_SHUTDOWN,

"или" нужно делать так EWX_SHUTDOWN or EWX_POWEROFF :)


 
Knight ©   (2004-06-26 23:09) [2]

Кстати, может кто знает... тут у Radmina на Win2k такой глюк. Даю команду выключить удалённый комп, он начинает завершать свою работу, затем идёт такой звук как при прямом выключении, т.е. замолкает винт, куллера, гаснет монитор, но... пости сразу (в полной тишине) заграется снова и на нём появляется надпись "Теперь питание компьютера можно выключить"... Почему?


 
ПсихЪ_клон   (2004-06-26 23:19) [3]

Я юзаю вот такую функцию:

function P7ExitWindows( RebootParam : Longword ) : boolean;
var
 TTokenHd: THandle;
 TTokenPvg: TTokenPrivileges;
 cbtpPrevious: DWORD;
 rTTokenPvg: TTokenPrivileges;
 pcbtpPreviousRequired: DWORD;
 tpResult: boolean;
const
 SE_SHUTDOWN_NAME = "SeShutdownPrivilege";
begin
 if Win32Platform = VER_PLATFORM_WIN32_NT then
 begin
   tpResult := OpenProcessToken(GetCurrentProcess(),
     TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
     TTokenHd);
   if tpResult then
   begin
     tpResult := LookupPrivilegeValue(nil,
                                      SE_SHUTDOWN_NAME,
                                      TTokenPvg.Privileges[0].Luid);
     TTokenPvg.PrivilegeCount := 1;
     TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
     cbtpPrevious := SizeOf(rTTokenPvg);
     pcbtpPreviousRequired := 0;
     if tpResult then
       Windows.AdjustTokenPrivileges(TTokenHd,
                                     False,
                                     TTokenPvg,
                                     cbtpPrevious,
                                     rTTokenPvg,
                                     pcbtpPreviousRequired);
   end;
 end;
 Result := ExitWindowsEx(RebootParam, 0);
end;

Использование:

P7ExitWindows( EWX_POWEROFF or EWX_FORCE );


 
DeadMeat ©   (2004-06-27 00:04) [4]

> [2] Knight ©   (26.06.04 23:09)
Тоже заметил, поэтому делаю Switch off вместо Shutdown...
P.S. А где ты раздобыл руссификатор...??

---
...Death Is Only The Begining...


 
Knight ©   (2004-06-27 00:48) [5]

> DeadMeat ©   (27.06.04 00:04) [4]
> Тоже заметил, поэтому делаю Switch off вместо Shutdown...

Надо будет попробовать.

>P.S. А где ты раздобыл руссификатор...??
Для чего? Если для Radmina, то я вроде нигде не писал, что он русский.


 
DeadMeat ©   (2004-06-27 16:13) [6]

> [5] Knight ©   (27.06.04 00:48)
> Для чего? Если для Radmina, то я вроде нигде не писал, что он русский.
Ааа... Просто меня вот это смутило -
Даю команду выключить удалённый комп

---
...Death Is Only The Begining...


 
YuRock ©   (2004-06-27 16:24) [7]

> Вызываю ExitWindowsEx( EWX_POWEROFF, 0 )  или с флагом EWX_SHUTDOWN, но ничего не происходит

Естественно - нужно ведь привелегии вначале получить... Вот:

function ExitWindows: Boolean;
var
 hToken : THANDLE;
 tkp : TTokenPrivileges;
 rl : DWORD;
begin
 Result := False;

 OpenProcessToken(GetCurrentProcess(), (TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY), hToken);
 if not (LookupPrivilegeValue(nil, LPSTR("SeShutdownPrivilege"), tkp.Privileges[0].Luid)) then begin
   MessageBox(0, "Не достаточно прав", "Ошибка", MB_ICONERROR);
   Exit;
 end;
 tkp.PrivilegeCount := 1;
 tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, rl);

 Result := ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0);
end;


 
Knight ©   (2004-06-27 19:49) [8]


> [6] DeadMeat ©   (27.06.04 16:13)
> Ааа... Просто меня вот это смутило -
> Даю команду выключить удалённый комп

Тогда бы было так - Даю команду "Выключить удалённый комп"... :)



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

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

Наверх




Память: 0.49 MB
Время: 0.024 c
11-1078508252
puky
2004-03-05 20:37
2004.08.08
SystemInfo & KOL


14-1090360772
matt
2004-07-21 01:59
2004.08.08
Зеленый чай


3-1089586197
Daniil
2004-07-12 02:49
2004.08.08
Многострочный DBGrid


6-1086523457
lena19
2004-06-06 16:04
2004.08.08
установка и разрыв соединения


1-1090681357
барбос
2004-07-24 19:02
2004.08.08
TaskManager