win32gui.SetActiveWindow()错误:找不到指定的过程

时间:2013-01-12 16:27:01

标签: python win32gui

我像这样得到活动窗口:

window = win32gui.GetForegroundWindow()

这是一个Int,比如说1053634。 然后我尝试将前景窗口设置回指定的窗口:

win32gui.SetForegroundWindow(window)

我收到此错误:     win32gui.SetForegroundWindow(窗口)     错误:(127,'SetForegroundWindow','无法找到指定的过程。')

有时当我在解释器中执行此操作时,我收到此错误:

win32gui.SetForegroundWindow(1053634)
error: (0, 'SetForegroundWindow', 'No error message is available')

您认为这是什么问题?

谢谢!

3 个答案:

答案 0 :(得分:13)

我的程序在Windows 7的桌面上运行正常,但是当我在Windows Vista上使用笔记本电脑时 (即使UAC关闭),我收到错误:

pywintypes.error: (0, 'SetForegroundWindow', 'No error message is available')

程序将在任务栏中闪烁,但不会发送任何字符。

我甚至尝试发送'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)

答案 1 :(得分:2)

这对我也有用

import win32gui, win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys('%')
win32gui.SetForegroundWindow(window.hwnd)

答案 2 :(得分:0)

什么对我有用...

import win32gui, win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
input("Press Enter")
shell.SendKeys(' ') #Undocks my focus from Python IDLE
win32gui.SetForegroundWindow(window) #It works!
shell.SendKeys('%')