Dlaczego alt + F4 nie zamyka cmd?

25

W systemie Windows alt+ F4nie zamyka cmd (jak w: WindowsKey+ R, cmd, Enter)

Czym różni się okno poleceń od zwykłego okna?

balalakshmi
źródło
Istnieje kilka zewnętrznych programów do obsługi skrótów klawiszowych. Niektórzy powinni być w stanie przechwycić Alt-F4 tylko dla odpowiednich okien wiersza polecenia i użyć alternatywnego zamknięcia (np. Wpisz „exit” lub kliknij przycisk zamykania lub skorzystaj z opcji „zamknij” w menu systemowym). Oczywiście powinieneś zdawać sobie sprawę z możliwych wad (patrz odpowiedź Jeffa). Przepraszam, nie mogę zalecić.
Steve314,
możesz użyć Alt+Space->, Caby go zamknąć.
Bor691,

Odpowiedzi:

19

Okno poleceń używa tych kombinacji klawiszy dla różnych aplikacji w oknie emulacji dos. Jeśli Alt-F4 zamknie okno, korzystanie z niektórych narzędzi może być niemożliwe. Jeśli chcesz tylko naprawić klawiaturę, po prostu wpisz, exitaby wyjść.

Jeff F.
źródło
jakie niektóre narzędzia? Alt-F4 zamyka prawie wszystkie okna w systemach NT, dlaczego więc wiersz poleceń jest wyjątkiem?
Peeyush,
1
Aplikacje przed Windows NT w DOS. Pamiętam jedną grę, w której Alt + F4 wywołał menu zapisu gry (wierzę, że Wing Commander Armada). Ponieważ jest to przeznaczone do emulacji (lub wyświetlania) DOS, musi zaakceptować tę kombinację klawiszy, a nie zamykać, aby aplikacje mogły otrzymać polecenie.
Jeff F.
och ... Okej ... Więc Microsoft musi nadal używać tej kombinacji do niektórych funkcji, w przeciwnym razie do tej pory musieli zapewnić wsparcie.
Peeyush,
15

Z drugiej strony, jeśli chcesz Alt+ F4zamknąć okno konsoli, możesz użyć następującego skryptu AutoHotkey :

#IfWinActive, ahk_class ConsoleWindowClass
    !F4::WinClose, A

#IfWinActive
iglvzx
źródło
6

Alt+ F4wysyła program z fokusem WM_CLOSEwiadomość .

Tak więc cmdprogram jest celowo skonfigurowany do ignorowania WM_CLOSEwiadomości lub ewentualnie nie przetwarza żadnych wiadomości.

DMA57361
źródło
Nie dotyczy to w pełni okien konsoli Win32 - są one własnością conhost(wcześniej - przez csrss), a aplikacje konsolowe obsługują to inaczej.
grawity
@grawity, należycie odnotowane, dzięki. Ale wygląda na to, że może to być początek prawdziwej odpowiedzi na pytanie.
DMA57361,
@grawity - Myślałem, że w systemie Windows nadal jest obsługiwany komunikat WM_CLOSE jako część programu konsoli. Nie znaczy to, że robi to dużą różnicę - jest to odpowiedź dla programistów pracujących na źródle cmd.exe, a nie dla użytkowników ciekawi uzasadnienia projektu.
Steve314,
1
Jak widać z odpowiedzi iglvzx, konsole rzeczywiście zamykają się w odpowiedzi WM_CLOSE.
Synetech