Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перехват завершения программы 
:(
    Опции темы
Desperate
Дата 15.11.2006, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 11.10.2006

Репутация: нет
Всего: -1



Как можно перехватить завершение программы в CTRL+ALT+DEL и выдать сообщение?
PM MAIL   Вверх
Rennigth
Дата 15.11.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Цитата(Desperate @  15.11.2006,  19:06 Найти цитируемый пост)
перехватить

-> NtTerminateProcess
но стандарными способами ты этого не сделаешь.
И вообще зачем тебе это? 
Ловить и спрашивать о завершении надо при нормальном завершении. WM_CLOSE и тд... 

Это сообщение отредактировал(а) Rennigth - 15.11.2006, 19:36


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Sunvas
Дата 15.11.2006, 19:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(Desperate @  15.11.2006,  19:06 Найти цитируемый пост)
Как можно перехватить завершение программы в CTRL+ALT+DEL и выдать сообщение?

Как я понимаю, ты юзаешь Вин 9х. В этих виндах киляние процессов тупо реализовано. Поэтому процедура Onclosequery тебе в помощь.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Desperate
Дата 15.11.2006, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 11.10.2006

Репутация: нет
Всего: -1



У меня WinXP! Необходимо это для корректного завершения проги, так предусмотрительность!
PM MAIL   Вверх
Sunvas
Дата 15.11.2006, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(Desperate @  15.11.2006,  20:59 Найти цитируемый пост)
Необходимо это для корректного завершения проги, так предусмотрительность!

Если ты о том, чтоб отловить сообщения "посланое" со вкладки "Приложения" то тебе ответ уже дали - что пиши в процедуре Onclosequery. (Ради экзотики можешь винде сообщения тоже отправлять, дабы она не сочла твое приложение зависшим).
Делать киляния твоего процесса не советую -> это чревато.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
W1zArD
Дата 15.11.2006, 22:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 29.1.2006

Репутация: 3
Всего: 3



а обработчик OnDestroy не поможет? (конечно если ты с визуальными компонентами не собираешься работать)
PM   Вверх
Sunvas
Дата 15.11.2006, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(W1zArD @  15.11.2006,  22:53 Найти цитируемый пост)
а обработчик OnDestroy не поможет?

Можно и так. А лучше и Ondestroy и onclosequery.

Это сообщение отредактировал(а) Sunvas - 15.11.2006, 23:41


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Desperate
Дата 16.11.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 11.10.2006

Репутация: нет
Всего: -1



А примерчика нету?
PM MAIL   Вверх
Sunvas
Дата 16.11.2006, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(Desperate @  16.11.2006,  18:03 Найти цитируемый пост)
А примерчика нету?

Код

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
canclose:=true;
if MessageBox(handle,'Вы действитеьльно хотите выйти?','Вопрос',292)=idno then canclose:=false;
end;


Это сообщение отредактировал(а) Sunvas - 16.11.2006, 19:00


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Rennigth
Дата 16.11.2006, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Цитата(Desperate @  16.11.2006,  18:03 Найти цитируемый пост)
А примерчика нету? 


Код

procedure TfrmMain.FormCloseQuery(ASender: TObject; var VCanClose: Boolean);
begin
  if not MessageDlg('Вы хотите выйти?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
    VCanClose := False;
end;




--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Desperate
Дата 16.11.2006, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 11.10.2006

Репутация: нет
Всего: -1



Да уже нашел, но она спрашивает в приложениях, а когда в процессах завершает, то ничего не спрашивает
PM MAIL   Вверх
Sunvas
Дата 16.11.2006, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Цитата(Desperate @  16.11.2006,  21:50 Найти цитируемый пост)
а когда в процессах завершает, то ничего не спрашивает

А должна?? 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Lence
Дата 16.11.2006, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чухарадземадзупэ
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 9.5.2006
Где: Ташкент

Репутация: 3
Всего: 3



Код

 private
        procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;
....

procedure TForm1.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
 //Даём добро на завершение Windows
 Message.Result:=1;
end;


--------------------
Шуруп, забитый молотком, крепче сидит чем гвоздь, закрученный отверткой ....  
PM MAIL ICQ Skype   Вверх
Sunvas
Дата 16.11.2006, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Lence, а это ты к чему? Мы же не ловим сообщения завершеня работы системы!


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Rennigth
Дата 17.11.2006, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 21.6.2004
Где: Moscow

Репутация: 49
Всего: 76



Цитата(Desperate @  16.11.2006,  21:50 Найти цитируемый пост)
Да уже нашел, но она спрашивает в приложениях, а когда в процессах завершает, то ничего не спрашивает 

Назови мне хоть одну программу которая бы спрашивала убиваться ей или нет. 
Это из серии: "Киллер смотрит в оптический прицел винтовки на жертву, звонит ему по телефону и спрашивает убивать его или нет.". 


--------------------
(* Honesta mors turpi vita potior *)
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0581 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.