首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我不确定win32gui.EnumWindows是否正常工作

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

Stack Overflow用户
提问于 2015-04-17 02:10:07
回答 1查看 2.3K关注 0票数 3

我刚刚开始使用pywin32,所以我一开始就对它的工作方式有点粗略,但是win32gui.EnumWindows只是不喜欢从回调中返回False,我不知道为什么。例如,以下崩溃

代码语言:javascript
运行
复制
from win32gui import EnumWindows

def derp(hWnd, lParam):
    return False

EnumWindows(derp, 0)

带回溯

代码语言:javascript
运行
复制
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笔记本上运行它,如果我在‘返回False’之前放置了一个print语句,它将作为错误0返回。如果我每次都从回调中返回True,让它在所有窗口中循环,一切都很好。

我的想法是,由于C版本的EnumWindows在回调返回false时以及当某些事情真正出错时都返回false,所以包装器只能看到返回值,并且在出现错误时假定最坏的情况?或者是别的什么东西?

(使用python2.7.9和pywin32 build 219)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-17 04:19:25

我认为EnumWindows正在做的正是它的文档说它会做的事情。从回调函数返回False将终止枚举。您的语句“包装器只能看到返回值”没有任何意义,因为根据文档,这个函数不应该返回任何内容。为什么不忘了分析返回值,只需尝试结束对EnumWindows的调用:除了:阻止,如果您想要抑制异常。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29689025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档