win32gui findwindow 不工作 win7
Posted
技术标签:
【中文标题】win32gui findwindow 不工作 win7【英文标题】:win32gui findwindow doesn't work win7 【发布时间】:2013-08-29 16:13:14 【问题描述】:我使用下面的代码来激活命令promt:
hwn = win32gui.FindWindow(None, "Prompt dei comandi - python demo.py")
win32gui.SetForegroundWindow(hwn)
Prompt dei comandi 是命令 promt 的意大利语单词 :),demo.py 是 python 文件的名称。 它与window xp完美配合,但是当我用win7尝试相同的代码时,它不再工作了。 我还使用以下代码检查可见窗口的列表:
import win32gui
def window_enum_handler(hwnd, resultList):
if win32gui.IsWindowVisible(hwnd) and win32gui.GetWindowText(hwnd) != '':
resultList.append((hwnd, win32gui.GetWindowText(hwnd)))
def get_app_list(handles=[]):
mlst=[]
win32gui.EnumWindows(window_enum_handler, handles)
for handle in handles:
mlst.append(handle)
return mlst
appwindows = get_app_list()
return appwindows
for i in appwindows:
print i
在该列表中,我可以看到:Prompt dei comandi - python demo.py win xp到win7有什么变化??
谢谢
【问题讨论】:
【参考方案1】:可能有几件事。但我认为这是关于 ANSI 和 UNICODE 的。尝试使用:
hwn = win32gui.FindWindow(None, u"Prompt dei comandi - python demo.py")
或者也许使用 ctypes:
from ctypes import windll
FindWindowW = windll.user32.FindWindowW
FindWindowA = windll.user32.FindWindowA
print FindWindowW(0, u"Prompt dei comandi - python demo.py")
print FindWindowA(0, "Prompt dei comandi - python demo.py")
希望对你有帮助。
【讨论】:
【参考方案2】:原来,唯一的不同只是在一个空间上! 我会解释我自己: 这适用于win xp:
hwn = win32gui.FindWindow(None, "Prompt dei comandi - python demo.py")
这适用于win7:
hwn = win32gui.FindWindow(None, "Prompt dei comandi - python demo.py")
听起来很疯狂,但确实如此。
【讨论】:
以上是关于win32gui findwindow 不工作 win7的主要内容,如果未能解决你的问题,请参考以下文章