0

我使用下面的代码来激活命令提示符:

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 有何变化?

谢谢

4

2 回答 2

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")

希望能帮助到你。

于 2013-08-30T00:51:00.983 回答
1

原来,唯一的不同就在一个空间上!我会解释我自己:这适用于win xp:

hwn = win32gui.FindWindow(None, "Prompt dei comandi - python demo.py")

这适用于win7:

hwn = win32gui.FindWindow(None, "Prompt dei comandi - python  demo.py")

这听起来很疯狂,但确实如此。

于 2013-09-09T14:19:41.867 回答