python win32gui FindWindowEx找不到Edit控件句柄解决方法

问题描述:

使用python win32gui.FindWindowEx方法获取Edit控件句柄失败(返回值是0)。

代码如下:

# 获取Open对话框的句柄
dialog = win32gui.FindWindow('#32770','Open')

# 以Open对话框为父窗口,获取Edit文本框的句柄
Edit = win32gui.FindWindowEx(dialog, 0, 'Edit',None)

错误原因:

Edit文本框的父窗口并不是Open文件选择对话框。

通过Microsoft Spy++工具,查看窗口的层级结构,发现控件有嵌套关系:

Dialog → ComboBox32 → ComboBox → Edit

解决方法:

按照层级关系去获取控件。修改后代码如下,可以取到Edit文本框的句柄。

dialog = win32gui.FindWindow('#32770','Open')
ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32',None)
ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox',None)
Edit = win32gui.FindWindowEx(ComboBox , 0, 'Edit',None)

你可能感兴趣的:(Python学习,python,win32gui)