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