Code: Select all
;@Ahk2Exe-SetDescription 禁用CMD窗口的关闭按钮
;@Ahk2Exe-SetVersion 1.0.0.0
;@Ahk2Exe-SetConsoleSubsys
#NoEnv
#NoTrayIcon
#SingleInstance, off
SetBatchLines -1
; ---------------------------------------------------------------
If 1 in /?,-h,--help,-?
Help()
Else If 1 = -r
EnableCmdX()
Else
DisableCmdX()
Return
; ---------------------------------------------------------------
DisableCmdX() {
hWnd := DllCall("GetConsoleWindow", "UPtr")
hSysMenu := DllCall("GetSystemMenu", "Int", hWnd, "Int", FALSE)
DllCall("RemoveMenu", "Int", hSysMenu, "UInt", 0xF060, "Uint", 0) ; SC_CLOSE=0xF060, MF_BYCOMMAND=0
DllCall("DrawMenuBar", "Int", hWnd)
}
EnableCmdX() {
hWnd := DllCall("GetConsoleWindow", "UPtr")
DllCall("GetSystemMenu", "Int", hWnd, "Int", TRUE)
DllCall("DrawMenuBar", "Int", hWnd)
}
Help() {
FileAppend, % "禁用CMD窗口的关闭按钮" "`n"
. "`n"
. "用法: " A_ScriptName " [-r]" "`n"
. " -r 恢复关闭按钮" "`n"
, CONOUT$
}
使用方法:直接在 cmd 窗口或者批处理文件中执行 DisableCmdX.exe。加上 -r 参数则恢复关闭按钮。
相关链接: