如何设置 Windows Terminal 退出不显示是否关闭所有标签的二次确认窗口?

我找到一个用 AHK 解决的方法:

; alt+F4
!F4::
{
    ;MsgBox "you pressed !F4"
    Run, %comspec% /c taskkill /f /im PDFXEdit.exe,,hide 
    return
}

其中的 PDFXEdit.exe 是 PDF-Xchange Editor,在关闭未保存的 PDF 文档前会给出提示,经测试,这段代码可以使用。

进程名,可以通过 AHK 的 Windows Spy 来定位,可以跟随鼠标显示窗口信息,得到 ahk_exe 就行了。

若要对当前所有激活的窗口生效,可以改为:

!F4::
{
    ; 获取当前激活的窗口的进程名,并存放到变量 activeprocess
    WinGet, activeprocess, ProcessName, A
    ; 执行 taskkill 命令,并引用 activeprocess 变量
    Run, %comspec% /c taskkill /f /im %activeprocess%,,hide 
    return
}

对上面代码进行一点改动。taskkill 太猛了,默认情况下还是要使用 alt+F4。

; 加上 $ 符,避免调用自己。
$!F4::
{
   ; vscode.exe 看情况修改
   if(WinActive("ahk_exe vscode.exe")){
      Run, %comspec% /c taskkill /f /im vscode.exe,,hide 
      return
   }

   ; 其他程序默认发送 alt+F4 按键
   Send !{F4}
}

reference

https://www.autohotkey.com/boards/viewtopic.php?t=74338

https://www.autohotkey.com/boards/viewtopic.php?t=11370