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?


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.


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

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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.