我找到一个用 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}
}