我像这样得到活动窗口:
window = win32gui.GetForegroundWindow()
Run Code Online (Sandbox Code Playgroud)
这是一个Int,比如1053634.然后我尝试将前景窗口设置回指定的窗口:
win32gui.SetForegroundWindow(window)
Run Code Online (Sandbox Code Playgroud)
我收到此错误:win32gui.SetForegroundWindow(window)错误:(127,'SetForegroundWindow','无法找到指定的过程.')
有时当我在解释器中执行此操作时,我收到此错误:
win32gui.SetForegroundWindow(1053634)
error: (0, 'SetForegroundWindow', 'No error message is available')
Run Code Online (Sandbox Code Playgroud)
您认为这个问题是什么?
谢谢!
小智 16
我的程序在Windows 7的桌面上工作正常,但当我在Windows Vista中使用笔记本电脑时(即使关闭了UAC),我收到错误:
pywintypes.error: (0, 'SetForegroundWindow', 'No error message is available')
Run Code Online (Sandbox Code Playgroud)
程序将在任务栏中闪烁,但不会发送任何字符.
我甚至尝试发送'notepad'SetForegroundWindow并得到同样的错误.
以下是一个解决方法的链接,它结合了线程以使计算机认为它们协同工作:http://www.shloemi.com/2012/09/solved-setforegroundwindow-win32-api-not-always-works/
本文提供了有关该问题的更多信息.
更新:很抱歉该链接转到了C程序.我研究了一些,发现它会让你SetForegroundWindow,如果你先发送一个alt键.
例如:
import win32gui, win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys('%')
win32gui.SetForegroundWindow(window)
Run Code Online (Sandbox Code Playgroud)