我有一个 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
。