问题描述
简单地说,我希望 Ctrl+Alt+T 激活 Windows 终端窗口。以前我用过这个:
^!T::
if WinExist("Windows PowerShell")
WinActivate
else
Run,wt
Return
但这已经不再适用了,因为当我使用 Posh Git 时,Windows 终端会更改其标题。
所以我需要在进程名称为“WindowsTerminal.exe”的任何窗口上激活该窗口。
我已经试过了,但由于某种原因它不能识别正确的窗口:
^!T::
if WinExist(ahk_exe "WindowsTerminal.exe")
WinActivate
else
Run,wt
Return
解决方法
您使用进程/exe 名称调用 WinExist 的语法不正确
代替:
if WinExist(ahk_exe "WindowsTerminal.exe")
您还需要将其中的 ahk_exe
部分包含在引号中。
就像这样:
if WinExist("ahk_exe WindowsTerminal.exe")
最终代码:
^!T::
if WinExist("ahk_exe WindowsTerminal.exe")
WinActivate
else
Run,wt
Return
,
解决方案:
^!T::
_WindowId = -1
WinGet _Windows,List
Loop %_Windows%
{
_Id := _Windows%A_Index%
WinGet,_PName,ProcessName,ahk_id %_Id%
if (_PName == "WindowsTerminal.exe")
{
_WindowId = %_Id%
break
}
}
if (_WindowId != -1)
{
WinActivate,ahk_id %_WindowId%
} else
{
Run,wt
}
Return
使用 AHK 可能有一种更短的方法可以做到这一点,但我再也不会被那种粗俗的语法所困扰了。