• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Funkcja wywoływana wraz z zamknięciem programu

Object Storage Arubacloud
0 głosów
192 wizyt
pytanie zadane 18 listopada 2015 w C i C++ przez qwertz Użytkownik (850 p.)
zamknięte 19 listopada 2015 przez qwertz
Pytanie.

Jak zrobić aby wraz z wyłączeniem programu "iksem" lub z menadżera zadań wyłowywana była jakaś funkcja?
komentarz zamknięcia: Problem rozwiązany

3 odpowiedzi

+4 głosów
odpowiedź 18 listopada 2015 przez Radfler VIP (101,030 p.)
wybrane 18 listopada 2015 przez qwertz
 
Najlepsza

Aby wywołać funkcję na zakończenie programu, musisz ją (jak pewnie wiesz) utworzyć. Musi wyglądać o tak:

void function(void) {
  // Instrukcje
}

Następnie musisz użyć funkcji std::atexit z biblioteki <cstdlib>, aby tą funkcję zarejerstrować. Robisz to o tak:

std::atexit(&function);

Jak argument funkcji wysyłasz wskaźnik na funkcję. Zarejerstrowane funkcje zostaną wywołane zawsze na zakończenie programu, czyli po wywołaniu std::exit (http://en.cppreference.com/w/cpp/utility/program/exit).

Tu masz więcej o std::atexit: http://en.cppreference.com/w/cpp/utility/program/atexit

komentarz 18 listopada 2015 przez niezalogowany
No proszę, czyli jednak Google nie boli ;)
komentarz 18 listopada 2015 przez qwertz Użytkownik (850 p.)
Dzięki wielkie, bardzo pomogło.
komentarz 18 listopada 2015 przez qwertz Użytkownik (850 p.)
A i jeszcze jedno jak zrobić aby była wywoływana jedynie podczas zamykania X a nie przez sam w sobie program?
komentarz 19 listopada 2015 przez Radfler VIP (101,030 p.)
Tego się wykryć nie da, chyba że użyjesz zewnętrznych bibliotek.
+1 głos
odpowiedź 18 listopada 2015 przez Patrycjerz Mędrzec (192,320 p.)

Okienko jest obsługiwane przez jakieś systemowe API, więc musisz mieć dostęp do niego, aby wykryć przyciśnięcie danego przycisku. Jeśli chodzi o system Windows, to przeczytaj artykuł tłumaczący zdarzenia w Windows APIhttp://cpp0x.pl/kursy/Kurs-WinAPI-C++/Podstawy/Obsluga-myszy-i-klawiatury/179.

Jeśli chodzi o wykrycie zamknięcia procesu przez Menedżer zadań, to... najprawdopodobniej nie da się tego zrobić, gdyż wtedy program jest zamykany natychmiast, odgórnie i trudno by było przewidzieć taką sytuację.

EDIT: Widzę, że Windows API posiada pewne zdarzenia, które mogłyby wykryć zamknięcie programu w każdych warunkach, ale nie jestem tego pewien, gdyż tego nie używałem. Musisz sam to sprawdzić.

0 głosów
odpowiedź 18 listopada 2015 przez niezalogowany
Obawiam się, że ot tak w kodzie, to się nie da. Znam sposób z SFML-em i wciśnięciem X, ale to już nie konsola. Jak się da jakimiś innymi sposobami, to się chętnie dowiem :)

Podobne pytania

0 głosów
2 odpowiedzi 124 wizyt
pytanie zadane 12 grudnia 2015 w C i C++ przez Indelencio Początkujący (410 p.)
–3 głosów
2 odpowiedzi 201 wizyt
pytanie zadane 18 sierpnia 2023 w Systemy operacyjne, programy przez niezalogowany
–1 głos
1 odpowiedź 660 wizyt
pytanie zadane 16 kwietnia 2020 w C i C++ przez informatyka.c Nowicjusz (120 p.)

92,633 zapytań

141,503 odpowiedzi

319,883 komentarzy

62,015 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...