试图找到一个ListBox以便向它发送消息

时间:2015-02-27 11:59:55

标签: python winapi pywin32

我正在尝试使用pywin32向(子)窗口内的ListBox控件发送消息(LB_SELECTSTRING)。我已经得到了窗口的句柄而没有问题,我也有父窗口的线程ID和进程ID。我的理解是控件的处理方式与windows类似,因为它们有自己的句柄,所以我试图找出如何使用其父句柄找到控件,似乎没有任何工作。

我的代码如下,它总是引发异常。

try:
    _listbox1_hwnd = win32gui.FindWindowEx(_hwnd, None, "ListBox1", "Preferences")
    if _listbox1_hwnd == 0:
        raise Exception("Listbox1 wasn't found!")
except Exception as e:
    print e
    sys.exit(0)

我也试过使用win32ui FindWindow方法没有运气(即这也失败了)

try:
    _listbox1_cwnd = win32ui.FindWindow("ListBox1", "Preferences")
    if _listbox1_cwnd == 0:
        raise Exception("Listbox1 wasn't found!")
except Exception as e:
    print e
    sys.exit(0)

2 个答案:

答案 0 :(得分:1)

如果您发现Python语言更容易,为什么不使用pywinauto?我从未见过更简单的自动化工具它非常pythonic。

答案 1 :(得分:0)

什么是" ListBox1"?这看起来不适合列表框类名。使用Spy ++工具检查列表框类名。