我不确定win32gui.EnumWindows是否正常工作

时间:2015-04-17 02:10:08

标签: python pywin32

我刚刚开始使用pywin32,所以我稍微粗略一下它应该如何工作,但是当我从回调中返回False时,win32gui.EnumWindows只是不喜欢它而我不是确定为什么。例如,以下崩溃

from win32gui import EnumWindows

def derp(hWnd, lParam):
    return False

EnumWindows(derp, 0)
带跟踪的

Traceback (most recent call last):
  File "C:\--------\test5.py", line 7, in <module>
    EnumWindows(ewp, 0)
error: (126, 'EnumWindows', 'The specified module could not be found.')

错误代码可能会有所不同,所以我认为它们与EnumWindows调用没有任何关系。例如,代码更改为123('文件名,目录名或卷标语法不正确。')如果我在旧的XP笔记本电脑上运行它,如果我在'return False'之前放置一个print语句它会返回如果我每次都从回调中返回True并让它循环遍历所有窗口,那么一切正常。

我的想法是,由于EnumWindows的C版本在回调返回false 时都返回false,当出现真正的错误时,包装器只能看到返回值,并且只要它得到最坏的值假?还是别的什么?

(使用python 2.7.9和pywin32 build 219)

1 个答案:

答案 0 :(得分:1)

我认为EnumWindows正在完成其文档所说的内容。从回调函数返回False将终止枚举。你的语句“包装器只能看到返回值”意味着什么,因为根据文档,这个函数不应该返回任何东西。为什么不忘记分析返回值并只是在try中调用EnumWindows:except:阻止,如果你想抑制异常。