Por que alt + F4 não fecha o cmd?

25

Nas janelas, o alt+ F4não fecha o cmd (como em: WindowsKey+ R, cmd, Enter)

Quão diferente é a janela de comando de uma janela normal?

balalakshmi
fonte
Existem alguns programas de manipulação de teclas de atalho de terceiros por aí. Alguns devem poder interceptar o Alt-F4 apenas nas janelas relevantes do prompt de comando e usar um desligamento alternativo (por exemplo, digite "exit" ou clique no botão Fechar ou use a opção "Fechar" do menu do sistema). Obviamente, você deve estar ciente da possível desvantagem (consulte a resposta de Jeffs). Desculpe, não posso fazer uma recomendação.
Steve314
você pode usar Alt+Space-> Cpara fechá-lo.
precisa saber é o seguinte

Respostas:

19

A janela de comando usa essas combinações de teclas para aplicativos variados dentro da janela de emulação dos. Se o Alt-F4 fechou a janela, pode ser impossível usar determinados utilitários. Se você deseja um teclado, corrija apenas o tipo exitpara sair.

Jeff F.
fonte
que certas utilidades? Alt-F4 fecha quase todas as janelas dos sistemas NT; por que o prompt de comando é uma exceção?
Peeyush
1
Aplicativos anteriores ao Windows NT no DOS. Lembro-me de um jogo em que Alt + F4 criou o menu de salvamento de um jogo (acredito que o Wing Commander Armada). Como foi desenvolvido para emular (ou exibir) o DOS, ele deve aceitar essa combinação de teclas e não fechar, para que esses aplicativos possam receber o comando.
Jeff F.
oh .. Ok ... Portanto, a Microsoft ainda deve usar essa combinação para algumas funcionalidades, caso contrário, eles devem ter fornecido suporte até agora.
Peeyush 5/09/12
15

Por outro lado, se você deseja Alt+ F4fechar a janela do console, pode usar o seguinte script de AutoHotkey :

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

#IfWinActive
iglvzx
fonte
6

Alt+ F4envia o programa com foco na WM_CLOSEmensagem .

Portanto, o cmdprograma é configurado intencionalmente para ignorar WM_CLOSEmensagens ou possivelmente não processa nenhuma mensagem.

DMA57361
fonte
Isso não se aplica inteiramente às janelas do console Win32 - elas pertencem a conhost(anteriormente - por csrss), e os aplicativos de console lidam com isso de maneira diferente.
grawity
@ grrawity, devidamente anotado, obrigado. Mas parece que isso poderia ser o começo da resposta real à pergunta.
DMA57361
@ grrawity - eu pensei que dentro do windows, ainda havia uma mensagem WM_CLOSE tratada como parte do programa do console. Porém, não que isso faça muita diferença - essa é uma resposta para programadores que trabalham na fonte do cmd.exe, e não para usuários curiosos sobre a lógica do design.
Steve314
1
Como você pode ver na resposta da iglvzx, os consoles realmente fecham em resposta a WM_CLOSE.
Synetech 20/03/12