【问题标题】:win32gui findwindow doesn't work win7win32gui findwindow 不工作 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有什么变化??

谢谢

【问题讨论】:

    标签: python-2.7 win32gui


    【解决方案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")
      

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

      【讨论】:

        猜你喜欢
        • 2018-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多