Вниз
Скачать: CL | DM;

Приостановка завершения Windows   Найти похожие ветки 

 
Lagrima_JN ©   (2006-06-20 12:45) [0]

Здравствуйте.
Подскажите пожалуйста, как с помощью API функций приостановить завершение работы windows, и затем (в зависимости от каких либо условий), либо продолжить выключение, либо его отменить.
Спасибо.


 
Dmitrij_K   (2006-06-20 12:58) [1]

Первое что приходит на ум WM_QUERYENDSESSION


 
Lagrima_JN ©   (2006-06-20 13:11) [2]

Пробовал

procedure TfrmMain.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
 if MessageDlg("Продолжить выключение?",
               mtConfirmation,
               [mbYes,mbNo], 0) = mrNo then
   Msg.Result := 0
 else
   Msg.Result := 1;
end;

все равно выключается.


 
Lagrima_JN ©   (2006-06-20 13:17) [3]

Вернее наоборот

procedure TfrmMain.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
if MessageDlg("Продолжить выключение?",
              mtConfirmation,
              [mbYes,mbNo], 0) = mrYes then
  Msg.Result := 0
else
  Msg.Result := 1;
end;

но сути это не меняет, и при нажатии на No и на Yes компьютер выключается.


 
ZeroDivide ©   (2006-06-20 16:22) [4]

Никак.

WM_QUERYENDSESSION получат все приложения и закроются и очень вероятно, что твое приложение получит WM_QUERYENDSESSION далеко не первым.


 
ZeroDivide ©   (2006-06-20 16:25) [5]

Как:

Написать перехватчик вызова API функции ExitWindowsEx!


 
Дмитрий Белькевич ©   (2006-06-21 02:17) [6]

>далеко не первым
ну и пусть - главное, его висеть останеться, остальные пускай сами о себе заботяться, если им нужно.


 
Германн ©   (2006-06-21 02:35) [7]


> Дмитрий Белькевич ©   (21.06.06 02:17) [6]
>
> >далеко не первым
> ну и пусть - главное, его висеть останеться, остальные пускай
> сами о себе заботяться, если им нужно.


Так то оно так, но
>  либо продолжить выключение, либо его отменить.
- первое либо будет чувствовать себя прекрасно, но второе - увы. :-(
То бишь нет способа вернуться в то же самое состояние, которое было перед тем, когда кто-то/что-то инициализировало процесс завершения Windows. А именно так я понял смысл "отмены завершения Windows".


 
Дмитрий Белькевич ©   (2006-06-22 01:58) [8]

Отмена завершения win, как я понимаю - это не дать ей выключиться, и прибить работающее (выполняющее что-то критичное) приложение.


 
Германн ©   (2006-06-22 03:19) [9]


> Отмена завершения win, как я понимаю - это не дать ей выключиться,
>  и прибить работающее (выполняющее что-то критичное) приложение.
>

А дальше что? Имхо, многое уже завершено/прибито.
Ну да. Можно поиграть в "стандартную игрушку".
А смысл?



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.051 c
6-1146778260
Sergio77
2006-05-05 01:31
2006.11.05
данные от сервера INDY всем клиентам INDY


1-1159177313
Alex_C
2006-09-25 13:41
2006.11.05
Как сохранить цветовое выделение текста в TRichEdit?


2-1161316558
morda
2006-10-20 07:55
2006.11.05
ADO пароль на подключение


2-1161222527
morda
2006-10-19 05:48
2006.11.05
выборка float из mysql


3-1157714659
NotGooDP
2006-09-08 15:24
2006.11.05
Проблема с передачей параметров




   Наверх