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

Вниз

Выход из Windows   Найти похожие ветки 

 
NavigatorV ©   (2003-12-02 19:28) [0]

Как програмно завершить работу в Windows XP (т.е. Power Off)


 
Anatoly Podgoretsky ©   (2003-12-02 19:44) [1]

http://podgoretsky.com/ftp/Language/nps/ru.delphi.html#N162


 
Smoke   (2003-12-16 17:10) [2]

1.Дать процессу привелегию SeShutdownName
2.HKLM\SOFTWARE\Microsoft\Windows  NT\CurrentVersion\Winlogon\PowerdownAfterShutdown=1
3.ExitWindowex EWX_FORCE | EWX_SHUTDOWN,0


 
Guest   (2003-12-28 21:45) [3]

Есть примеры!!! Отключается XP даже VB скриптом, кому надо, мыльте ilya2003@ezmail.ru.


 
Рамиль ©   (2003-12-29 09:57) [4]

В XP все решается проще. Есть такая программка стандартная
shutdown.exe, можно даже завершить работу удаленного компа.


 
tesseract ©   (2003-12-29 13:42) [5]

BOOL ExitWindowsEx(
 UINT uFlags,
 DWORD dwReason
);
UFlags:
EWX_LOGOFF:  
EWX_POWEROFF
EWX_REBOOT
EWX_SHUTDOWN

dwReason - на фиг не нужен.

BOOL InitiateSystemShutdownEx(
 LPTSTR lpMachineName,
 LPTSTR lpMessage,
 DWORD dwTimeout,
 BOOL bForceAppsClosed,
 BOOL bRebootAfterShutdown,
 DWORD dwReason
);
только Winnt/WinXP


 
YuRock ©   (2003-12-29 14:29) [6]

Вот рабочий вариант:


Uses Windows, SysUtils;

procedure ExitWnd;
var
 hToken : THANDLE;
 tkp : TTokenPrivileges;
 rl : DWORD;
begin
 OpenProcessToken(GetCurrentProcess(), (TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY), hToken);
 if not (LookupPrivilegeValue(nil, LPSTR("SeShutdownPrivilege"), tkp.Privileges[0].Luid)) then
  begin
    MessageBox(0, "Нет локальных привилегий", "", MB_ICONSTOP);
    Exit;
  end;
 tkp.PrivilegeCount := 1;
 tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, rl);
 if not (LookupPrivilegeValue(nil, LPSTR("SeRemoteShutdownPrivilege"), tkp.Privileges[0].Luid)) then
  begin
    MessageBox(0, "Нет сетевых привилегий", "", MB_ICONSTOP or MB_TASKMODAL);
    Exit;
  end;
 tkp.PrivilegeCount := 1;
 tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
 AdjustTokenPrivileges(hToken, FALSE, tkp, 0, nil, rl);

 if not ExitWindowsEx(EWX_SHUTDOWN or EWX_POWEROFF, 0) then
   MessageBox(0, "Что-то не то...", "", MB_ICONSTOP or MB_TASKMODAL);
end.



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

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

Наверх




Память: 0.48 MB
Время: 0.048 c
3-1077779416
Johnmen
2004-02-26 10:10
2004.03.28
Узнать размер данных в поле varchar


3-1077137009
Денисыч
2004-02-18 23:43
2004.03.28
Как получить текущее значение в DBGrid


14-1077781096
MPS
2004-02-26 10:38
2004.03.28
Сбойные блоки на харде - что делать???


6-1074236639
Vorobyev Sergey
2004-01-16 10:03
2004.03.28
Доступ к папке на Win2000 из Win98 под другим пользователем?


6-1073307972
Qwert622
2004-01-05 16:06
2004.03.28
Web сервер.