Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.11.05;
Скачать: 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 вся ветка

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

Наверх




Память: 0.46 MB
Время: 0.052 c
2-1161069191
Батя
2006-10-17 11:13
2006.11.05
Типа listbox a только в место текста картинки


15-1160997723
DillerXX
2006-10-16 15:22
2006.11.05
Лобанов Александр - "Жестокая Голактика"


1-1159387946
Servelat
2006-09-28 00:12
2006.11.05
поймать SIGINT


2-1161620422
Alral
2006-10-23 20:20
2006.11.05
Определение нажатия клавиши.


15-1160684515
kolyann..
2006-10-13 00:21
2006.11.05
help!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский