Форум: "WinAPI";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];
ВнизShutDown Найти похожие ветки
← →
Quattro © (2005-07-31 01:23) [0]Добрый день!...подскажите пожалуйста какое сообщение ответсвтенно за выключение компа??...ExitWindows(EW_?????,0)??
← →
Eraser © (2005-07-31 01:31) [1]Quattro © (31.07.05 01:23)
Не совсем понял вопрос, но думаю что ответ WM_ENDSESSION или WM_QUERYENDSESSION.
← →
kami © (2005-07-31 01:33) [2]Первоисточник :
BOOL ExitWindows(DWORD dwReserved, UINT uReserved);
Parameters
dwReserved Reserved; must be zero.
uReserved Reserved; must be zero.
Так что никаких сообщений в этой ф-и не передается - оба параметра=0.
Телепатируя, скажу, что при завершении работы всем приложениям отсылается WM_QUERYENDSESSION: The ExitWindows function asks applications if they want to terminate by sending WM_QUERYENDSESSION to the main window of all running applications.
← →
Quattro © (2005-07-31 01:48) [3]может быть я неверное выразил мысль..прошу за это извинить...например..ExitWindows(EW_RestartWindows,0)...или ExitWindos(EW_RebootSystem,0)...эти примеры так или иначе перезагружают систему..а надобно чтоб винда вместе с собой выключала и комп)))...может так понятнее? =))
← →
Eraser © (2005-07-31 01:51) [4]Quattro © (31.07.05 01:48) [3]
см. ExitWindowsEx
← →
Quattro © (2005-07-31 02:30) [5]Eraser © (31.07.05 01:51) [4]
хм...почему то не хочет вырубаться комп от такой вот строчки
if not ExitWindowsEx(EWX_SHUTDOWN,0) then ShowMessage("Nicht!");
← →
Quattro © (2005-07-31 02:36) [6]причём if not ExitWindowsEx(EWX_LOGOFF,0) then ShowMessage("Nicht!");-работает....как так?
← →
kami © (2005-07-31 12:45) [7]EWX_SHUTDOWN
Shuts down the system to a point at which it is safe to turn off the power. All file buffers have been flushed to disk, and all running processes have stopped.
The calling process must have the SE_SHUTDOWN_NAME privilege
А для EWX_LOGOFF не нужно никаких привилегий.
Да, еще - успешно отработавшая ExitWindows не означает, что комп выключится, а только что процесс выключения начался успешно.
← →
Anatoly Podgoretsky © (2005-07-31 12:49) [8]Quattro © (31.07.05 02:30) [5]
Так не видать здесь выключения компьютера, только выключение Виндоус. Ты бы все таки справку посмотрел.
← →
Eraser © (2005-07-31 13:42) [9]Quattro ©
uses Windows;
procedure RebootSystem;
var
handle, ph: THandle;
pid, n: DWORD;
luid: TLargeInteger;
priv: TOKEN_PRIVILEGES;
dummy: PTokenPrivileges;
ver: TOSVERSIONINFO;
begin
ver.dwOSVersionInfoSize := Sizeof(ver);
GetVersionEx(ver);
if ver.dwPlatformId=VER_PLATFORM_WIN32_NT then begin
pid := GetCurrentProcessId;
if OpenProcessToken(ph, TOKEN_ADJUST_PRIVILEGES, handle) then
if LookupPrivilegeValue(nil, "SeShutdownPrivilege", luid) then begin
priv.PrivilegeCount := 1;
priv.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
priv.Privileges[0].Luid := luid;
dummy := nil;
AdjustTokenPrivileges(handle, false, priv, 0, dummy^, n);
end;
end;
ExitWindowsEx(EWX_REBOOT, 0); // !!! здесь подставляй нужный параметр
end;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c