Форум: "Система";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
ВнизВыход из 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.047 c