Чому alt + F4 не закриває cmd?


25

У вікнах alt+ F4не закриває cmd (як у: WindowsKey+ R, cmd, Enter)

Наскільки відрізняється вікно команди від звичайного вікна?


Існують програми сторонніх гарячих клавіш. Деякі повинні мати можливість перехоплювати Alt-F4 лише для відповідних командних рядків Windows та використовувати альтернативне вимкнення (наприклад, введіть "вихід", або натисніть кнопку закриття або скористайтеся системним меню "Закрити"). Очевидно, ви повинні знати про можливий зворотний бік (див. Відповідь Джеффа). Вибачте, я не можу дати рекомендацію.
Steve314


ви можете використовувати Alt+Space->, Cщоб закрити його.
Bor691

Відповіді:


19

У вікні команд використовується ця комбінація клавіш для різних програм у вікні дос емуляції. Якщо Alt-F4 закрив вікно, використовувати певні утиліти може бути неможливо. Якщо ви хочете виправити лише клавіатуру, просто введіть exitїї.


які певні комунальні послуги? Alt-F4 закриває майже всі вікна в NT Systems, тоді чому командний рядок є винятком?
Піюш

1
Програми перед Windows NT в DOS. Я пам’ятаю одну гру, де Alt + F4 вивів меню збереження для гри (Wing Commander Armada, я вважаю). Оскільки це призначено для імітації (або відображення) DOS, він повинен прийняти цю комбінацію клавіш, а не закривати, щоб ці програми могли отримувати команду.
Джефф Ф.

ох .. Гаразд ... Тож Microsoft, мабуть, все ще використовує цю комбінацію для певної функціональності, інакше вони вже мали підтримку.
Піюш

15

З іншого боку, якщо ви хочете, щоб Alt+ F4закрити вікно консолі, ви можете використовувати такий сценарій AutoHotkey :

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

#IfWinActive

6

Alt+ F4надсилає програму з фокусом WM_CLOSEповідомлення .

Отже, cmdпрограма або навмисно налаштована на ігнорування WM_CLOSEповідомлень, або, можливо, взагалі не обробляє жодні повідомлення.


Це не стосується повністю вікон консолі Win32 - їм належить conhost(раніше - csrss), а консольні програми обробляють це по-різному.
grawity

@grawity, належним чином зауважив, дякую. Але здається, що це може стати початком реальної відповіді на питання.
DMA57361

@grawity - я думав, що в Windows є ще повідомлення WM_CLOSE, яке обробляється як частина консольної програми. Не те, що це має велику різницю, однак - це відповідь для програмістів, що працюють над джерелом cmd.exe, а не для користувачів, які цікавляться обґрунтуванням дизайну.
Steve314

1
Як видно з відповіді iglvzx, консолі дійсно закриваються у відповідь на WM_CLOSE.
Synetech
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.