Tak, jest. Jest to Alt+F4.
To jest kombinacja klawiszy do zakończenia programu . Jedynym powodem, dla którego nie działa zgodnie z reklamą, są ignoranccy programiści, którzy odmawiają przestrzegania wytycznych projektowych Microsoftu.
Ten problem występowałby również z każdym innym klawiszem skrótu. Można jedynie stworzyć niestandardowe rozwiązanie za pomocą AutoHotKey (lub podobnych narzędzi), które zabija proces. Ale to najprawdopodobniej spowodowałoby utratę dużej ilości pracy. Ponieważ jest to dość brutalna metoda, aby zakończyć proces.
Chcę wiedzieć więcej!
OK, według mojego zrozumienia, istnieje kilka sposobów na zakończenie aplikacji Windows.
- Wysłanie komunikatu
WM_CLOSE
window message do głównego okna aplikacji.
- Zniszczenie ](http://msdn.microsoft.com/en-us/library/windows/desktop/ms632682(v=vs.85).aspx) głównego okna aplikacji.
- Zakończenie ](http://msdn.microsoft.com/en-us/library/ms686714%28VS.85%29.aspx) procesu.
Pierwszy sposób jest sposobem czystym. Sposób, w jaki powinno się zamykać aplikację. To jest ta sama rzecz, którą działa Alt+F4. Naciśnięcie Alt+F4 wyśle po prostu wiadomość WM_CLOSE
do okna aplikacji.
Teraz, spójrzmy na wszystkie 3 sposoby w odwrotnej kolejności.
Zakończenie procesu
W systemie Windows aplikacja żyje w procesie . Wewnątrz tego procesu aplikacja może wytworzyć okno . Okno jest tym, co zobaczysz na pulpicie i z czym będziesz wchodził w interakcję.
Tak więc, jeśli proces jest root aplikacji, jeśli go zakończysz, wszystko inne również zniknie. Byłoby to więc świetne rozwiązanie, aby całkowicie zakończyć aplikację. Ale to zabije aplikację tak gwałtownie, że nie będzie miała szansy zapisać żadnych krytycznych danych na dysku.
Więc nie jest to zalecane!
Niszczenie głównego okna aplikacji
Jak się właśnie dowiedzieliśmy, główne okno aplikacji jest tylko częścią procesu. Jeśli więc po prostu zniszczymy to okno, nadal będziemy mieli proces śmierdzący w tym miejscu :(
A to będzie jeszcze trudniejsze do usunięcia niż aplikacja.
Jest to najprawdopodobniej najpaskudniejsze podejście do próby zakończenia aplikacji. Trzymaj się z daleka!
Wysyłanie wiadomości WM_CLOSE
Windows jest systemem operacyjnym opartym na komunikatach. Oznacza to, że komponenty rozmawiają ze sobą wysyłając do siebie małe komunikaty.
Jedną z takich wiadomości jest wiadomość WM_CLOSE
.
Jeśli aplikacja otrzyma ten komunikat, jest uzgodnione, że ta aplikacja powinna podjąć wszelkie działania, a następnie żyć.
Jednak każdy programista może sam zdecydować, jak potraktować ten komunikat.
Tak jak dokumentacja powiedziała nam wcześniej, domyślnym zachowaniem byłoby wywołanie DestroyWindow
i tym samym wykonanie naszego podejścia do wyjścia aplikacji #2.
Z tą małą różnicą, że tym razem jest to celowe i program ma szansę zapisać krytyczne dane.
Wniosek
Jak więc widać, jesteśmy tutaj zdani na łaskę każdego programisty. Albo podejmujemy ryzyko utraty danych (nie chcesz podejmować tego ryzyka!).