Объединенный Открытый Проект - Сайт для Настоящих Компьютерщиков

Объединенный Открытый Проект

Сайт для Настоящих Компьютерщиков

; Логин:
  Пароль:
Обычный
Безопасный
Запомнить пользователя



Зарегистрироваться
Забыли пароль?
 
 
 
Объединенный Открытый Проект »   Программирование »   Pascal/Delphi »   Закрытие консольного приложения?
RSS

Закрытие консольного приложения?

Как обработать это событие?

Текущий рейтинг темы: Нет

<<Назад  Вперед>>Модераторы: Winnowing_Raven, wsxПечать
 
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Вопрос такой: как поймать и обработать в консольном приложении ситуацию, когда пользователь закрывает оконо с ним, чтобы корректно выполнить все деструкторы?

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
wsx
Модератор раздела
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1074
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
Не разу не сталкивался. Но могу предположить, что следует как то манипулировать через handle...

На досуге ещё подумаю...
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Как выяснилось, нужно повесить функцию-обработчик с помощью SetConsoleCtrlHandler и ловить с ее помощью событие CTRL_CLOSE_EVENT.

Вот пример кода:


program Project2;



{$APPTYPE CONSOLE}



uses

  Windows, SysUtils;



function HandlerRoutine(dwCtrlType: cardinal): bool; stdcall;

  begin

    case dwCtrlType of

      CTRL_CLOSE_EVENT: begin

          if IDYES = MessageBox(0,'You are killing me','Why?',MB_YESNO)

          then Result:=false else Result:=true

      end;

      else Result:=false;

    end;//of case

  end;



begin

  SetConsoleCtrlHandler(@HandlerRoutine,true);

  Sleep(Infinite);

end.


---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
wsx
Модератор раздела
Юниксойд, сетевик
wsx
Откуда: Казань
Всего сообщений: 1074
Рейтинг пользователя: 28

Репутация пользователя: 1




Дата регистрации на форуме:
14 янв. 2005
Гыгы..Я же говорил через хендлер...
прикольно :))
Только честно говоря, давно уже не разрабатываю консольные приложения. И не понимаю для чего их можно разрабатывать ?
<<Назад  Вперед>>Модераторы: Winnowing_Raven, wsxПечать
Объединенный Открытый Проект »   Программирование »   Pascal/Delphi »   Закрытие консольного приложения?
RSS
Быстрый переход в раздел:


Время выполнения скрипта: 0.0373. Количество выполненных запросов: 19, время выполнения запросов 0.0262