zdarzenie OnClose w aplikacji konsolowej

0

witam,
problem bodaj tak stary jak programowanie,
przeszukałem dziesiątki postów, m.in. na 4p w dziale C++ i chba głupi jestem :)
chodzi o wykonanie akcji podczas zamykania aplikacji konsolowej

otóż konstrukcja

  while not GetMessage(msg, 0, 0, 0) do
  begin
    if (msg.message = stała) then
   {próbowałem chyba ze wszyskimi sensownymi n.p.
    WM_ENDSESSION, WM_QUERYENDSESSION, WM_QUIT, WM_CLOSE}
   {jakiś kod n.p. testowo}
      MessageBox(0, 'KONIEC programu', 'Komunikat', MB_OK);

    TranslateMessage(msg);
    DispatchMessage(msg);
  end;

NIE działa a podejrzewam, że są dwie możliwości :

  1. nie tędy droga
  2. nie rozumiem tej konstrukcji i nie potrafię jej zastosować

próbowałem także skorzystać z funkcji PeekMessage(msg, 0, 0, 0, stała) i nic

obojętne która z możliwości zachodzi to prosz o pomoc :))

0

Nie wiem czy dobrze kombinuje, ale chcesz wykonać jakiś kod gdy aplikacja konsolowa się skonczyła, tak? No
to chyba musisz kod wykonać przed ostatnim endem z kropką. Natomiast jeżeli chodzi o aplikację WinAPI to w
głownej procedurze musisz obsłużyć komunikat WM_CLOSE lub niszczenie okna poprzez WM_DESTROY. Ale nie
jestem ekspertem w WinApi, więc nie wiem czy dobrze zrozumiałem Twój poblem, może ktoś inny potwierdzi.

0

obrazowo i testowo problem wygląda tak : klikam na [X] na okienku aplikacji i chcę wyświetlic zapytanie "Czy jesteś pewien ?"
"w realu" - w aplikacji, PRZED zamknięciem muszę wykonać jakiś kod :)
jak wspominałem, niestety porównywałem msg.message ze wszystkimi chyba sensownymi parametrami m.in. WM_CLOSE
aha, taką konstrukcję (bez sprawdzania komunikatu) wykorzystuje się dla "zatrzymania" aplikacji, to już wiem ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1