当我想通过在终端中运行任何Python将VSCode带到前台时,我这样做:
import subprocess
import os
VS_CODE_PATH = r'C:\Users\Computador\AppData\Local\Programs\Microsoft VS Code\Code.exe'
def attention() -> None:
subprocess.Popen([VS_CODE_PATH, os.getcwd()])
我尝试直接使用CMD的路径:
import subprocess
import os
CMD_PATH = r'C:\WINDOWS\system32\cmd.exe'
def attention() -> None:
subprocess.Popen([CMD_PATH, os.getcwd()])
但它并没有按照我想要的方式将正在运行的内容带到前台。
我应该如何进行才能让他为我执行所需的操作?
要将窗口置于前台,您可以使用 PyGetWindow。该脚本应该适用于任何操作系统,因为 PyGetWindow 库是跨平台的。我已经在 Windows 11 上测试过它。我添加了“.*?”正则表达式语句,因为 VS Code 在标题中包含文件名和项目名。另外,如果您同时运行多个 VS Code 实例,您应该相应地修改此脚本。
import pygetwindow as gw
from re import match
def bring_window_to_foreground(window_title):
windows = gw.getAllTitles()
filtered_values = list(filter(lambda v: match(f".*?{window_title}.*?", v), windows))
win = gw.getWindowsWithTitle(filtered_values[0])[0]
win.activate()
bring_window_to_foreground("Visual Studio Code")