You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

登录时启动并最小化Quake Terminal的WSF脚本实现问题

解决Windows Terminal Quake模式窗口焦点切换问题

你的核心问题是:切换到Quake模式后,Quake窗口是独立的窗口实例,和初始Terminal进程的PID不绑定,所以用初始进程PID调用AppActivate无法切换到Quake窗口,导致后续操作失效。以下是沿用你现有思路的修改方案:

修改后的WSF脚本

<package>
    <job id="vbs">
        <script language="VBScript">
            Set objShell = WScript.CreateObject("WScript.Shell")

            Function SendKeysToByPID(process, keys, wait)
                objShell.AppActivate(process.ProcessID)
                objShell.SendKeys keys
                WScript.Sleep wait
            End Function

            Function SendKeysToByTitle(windowTitle, keys, wait)
                objShell.AppActivate(windowTitle)
                objShell.SendKeys keys
                WScript.Sleep wait
            End Function

            ' 打开初始Terminal窗口
            Set terminal = objShell.Exec("wt")
            WScript.Sleep 500
            
            ' 切换到Quake模式
            SendKeysToByPID terminal, "^(`)", 1000
            
            ' 通过窗口标题激活Quake窗口并最小化(Alt+空格+N是标准最小化快捷键)
            SendKeysToByTitle "Windows Terminal (Quake)", "% {n}", 1000
            
            ' 切回初始Terminal窗口并关闭
            SendKeysToByPID terminal, "exit{ENTER}", 1000
        </script>
    </job>
</package>

关键修改说明

  • 新增SendKeysToByTitle函数:通过窗口标题激活目标窗口,解决Quake窗口无法通过初始PID激活的问题。
  • Quake窗口默认标题为Windows Terminal (Quake),如果你的Terminal修改过标题,需要对应调整这个参数。
  • 用% {n}(即Alt+空格+N)实现Quake窗口的最小化,这是Windows标准窗口操作快捷键,无需额外配置。
  • 重新用初始Terminal的PID切回原窗口,执行exit命令关闭它。

注意事项

  • 如果Terminal启动较慢,可适当延长WScript.Sleep的等待时间(单位:毫秒),避免操作过早执行导致失效。
  • 确保你的Quake模式快捷键确实设置为Ctrl+``,和脚本中的^()匹配。

内容的提问来源于stack exchange,提问作者James Richardson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 18:37:12