win32gui调用SetForegroundWindow无法将VSCode设为前台窗口问题求助
win32gui调用SetForegroundWindow无法将VSCode设为前台窗口问题求助
我最近在做一个项目,需要先给其他程序截图,再把截图数据放到VSCode里处理,所以得在窗口之间来回切换。切换到目标程序、截图都没问题,但就是切不回VSCode,这可愁死我了!
我的代码如下:
import time import win32gui def focusVscode(): time.sleep(1) toplist, winlist = [], [] # Focus the VSCode window def enum_cb(hwnd, results): winlist.append((hwnd, win32gui.GetWindowText(hwnd))) win32gui.EnumWindows(enum_cb, toplist) vscode = [(hwnd, title) for hwnd, title in winlist if 'visual studio code' in title.lower()] if vscode: print("\033[32mVSCode found\033[0m") print(f"VSCode hwnd: {vscode}") hwnd = vscode[0][0] # Bring VSCODE window to the foreground win32gui.SetForegroundWindow(hwnd) time.sleep(0.15)
终端里的错误提示对我来说没啥帮助:
Screenshot saved to: screenshot\screenshot_18.59.07.png VSCode found VSCode hwnd: [(593232, 'main.py - <PROJECT NAME> - Visual Studio Code')] Traceback (most recent call last): File "c:\Users\<USER>\Documents\Python\<PROJECT NAME>\main.py", line 72, in <module> process_screenshot() ~~~~~~~~~~~~~~~~~~^^ File "c:\Users\<USER>\Documents\Python\<PROJECT NAME>\main.py", line 40, in process_screenshot focusVscode() ~~~~~~~~~~~^^ File "c:\Users\<USER>\Documents\Python\<PROJECT NAME>\main.py", line 27, in focusVscode win32gui.SetForegroundWindow(hwnd) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^ pywintypes.error: (0, 'SetForegroundWindow', 'No error message is available')
我查了半天,确认VSCode的窗口是能找到的,连hwnd都能获取到,可就是没法把它调到前台,实在搞不懂哪里出问题了。
备注:内容来源于stack exchange,提问作者Programmic
相关产品推荐
相关产品推荐

