Главная страница
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.026 c
1-1078663901
Ученик2
2004-03-07 15:51
2004.03.28
Отчет в Word. Где ошибка?


14-1078222874
Zergling
2004-03-02 13:21
2004.03.28
Чудило-продавцы :)


1-1078881880
Skaner
2004-03-10 04:24
2004.03.28
Вывод путей папок.


3-1077280557
TATIANA
2004-02-20 15:35
2004.03.28
Как пометить несколько записей в GRID


6-1074529259
Opryshok
2004-01-19 19:20
2004.03.28
Парсинг HTML документа.