ทำไม alt + F4 ไม่ปิด cmd


25

ใน windows alt+ F4ไม่ปิด cmd (เช่นใน: WindowsKey+ R, cmd, Enter)

หน้าต่างคำสั่งต่างจากหน้าต่างปกติแตกต่างกันอย่างไร


มีโปรแกรมจัดการฮอตคีย์ของบุคคลที่สามอยู่ที่นั่น บางคนน่าจะสามารถสกัดกั้น Alt-F4 สำหรับหน้าต่างพรอมต์คำสั่งที่เกี่ยวข้องเท่านั้นและใช้การปิดระบบทางเลือกอื่น (เช่นพิมพ์ "exit" หรือคลิกปุ่มปิดหรือใช้เมนูระบบ "ปิด") เห็นได้ชัดว่าคุณควรตระหนักถึงข้อเสียที่เป็นไปได้ (ดูคำตอบของ Jeffs) ขออภัยฉันไม่สามารถให้คำแนะนำ
Steve314


คุณสามารถใช้Alt+Space-> Cเพื่อปิด
Bor691

คำตอบ:


19

หน้าต่างคำสั่งใช้คีย์ผสมเหล่านั้นสำหรับการใช้งานที่แตกต่างกันภายในหน้าต่างจำลอง em หาก Alt-F4 ปิดหน้าต่างอาจเป็นไปไม่ได้ที่จะใช้ยูทิลิตี้บางอย่าง หากคุณต้องการแก้ไขแป้นพิมพ์เพียงพิมพ์exitเพื่อออก


สาธารณูปโภคอะไรบ้าง? Alt-F4 ปิดหน้าต่างเกือบทั้งหมดในระบบ NT แล้วเหตุใดจึงทำให้พรอมต์คำสั่งเป็นข้อยกเว้น
Peeyush

1
แอพพลิเคชั่นก่อน Windows NT ใน DOS ฉันจำได้หนึ่งเกมที่ Alt + F4 นำเมนูบันทึกสำหรับเกมขึ้นมา (ผู้บัญชาการกองเรือปีกผมเชื่อ) เนื่องจากสิ่งนี้ได้รับการออกแบบเป็น Emulate (หรือจอแสดงผล) DOS จึงต้องยอมรับการใช้คีย์ผสมและไม่ปิดเพื่อให้แอปเหล่านี้สามารถรับคำสั่งได้
Jeff F.

โอ้ .. โอเค ... ดังนั้น Microsoft ต้องยังคงใช้ชุดค่าผสมนั้นเพื่อการทำงานบางอย่างมิฉะนั้นจะต้องให้การสนับสนุนในตอนนี้
Peeyush

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
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.