使用 VBS 关注没有进程标题或 PID 的特定进程

使用 VBS 关注没有进程标题或 PID 的特定进程

我有一个 VBScript,可以用于聚焦给定的进程(取自这里):

Dim ObjShell :Set ObjShell = CreateObject("Wscript.Shell")
ObjShell.AppActivate("Notepad")

但不幸的是,当使用特定进程的标题时,这不起作用:“Ableton Live 10 Intro.exe”是我认为的标题。

任务管理器截图

在这里,您可以在任务管理器中看到父进程名称为“Ableton Live 10 Intro.exe”(从属性面板复制粘贴)。我还注意到描述是“Ableton Live 10 Intro.exe”:

在此处输入图片描述

显然应用程序激活()需要 PID 或标题字符串“如标题栏中所示”,但标题栏中显示的窗口标题为空。我也不认为我可以使用 PID 来定位此进程,因为我不知道 PID 是什么,因为此脚本应该在此进程登录时启动时发生(因此 PID 每次都会不同)。

那么,鉴于我有它的

  • 描述,
  • 可执行文件的路径,

但不是它的

  • 标题,
  • PID

这有可能吗?我是 VBScript 新手。感谢您的帮助!

答案1

我建议使用免费 自动热键 而不是 VBScript。

以下 AutoHotkey 脚本将激活您的.exe

WinGet, CalcIDs, List, ahk_exe Ableton Live 10 Intro.exe
If (CalcIDs = 1) ; Calc is NOT minimized
    CalcID := CalcIDs1
else
    CalcID := CalcIDs2 ; Calc is Minimized use 2nd ID
winRestore, ahk_id %CalcID%
winActivate, ahk_id %CalcID%

安装 AutoHotKey 后,将上述文本放入文件中.ahk并双击进行测试。要使其在登录时运行,请将其放在 的启动组中 C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

相关内容