SendMessage 无法设置ComboBox的值

最近使用python编写一个自动化测试工具,其中要自动打开文件对话框选择文件进行操作,但是使用SendMessage 发送消息填充ComboBox时填充的值无法显示 大概如下

     # 找到指定标题的对话框,暂时不用管,自己封装的
    b = SimpleWnd.get('打开', 'title')

    # 找到文件路径输入框
    h1 = b.get_child_handle_by_class('ComboBoxEx32')
    h2 = win32gui.FindWindowEx(h1, None, 'ComboBox', None)
    h3 = win32gui.FindWindowEx(h2, None, 'Edit', None)
    print h1,h2,h3  # 值都是对的

    # 填写路径,这里单步调试可以显示,直接运行不行
    # 返回值为1
    # 在其后加Sleep也不行
    win32gui.SendMessage(h3, win32con.WM_SETTEXT, 0, '111111'.encode('gbk'))

        # 这时候获取的值是对的,111111
        buf_size = win32gui.SendMessage(h3, win32con.WM_GETTEXTLENGTH, 0, 0) + 1 # 要加上截尾的字节
    str_buffer = win32gui.PyMakeBuffer(buf_size) # 生成buffer对象
    win32api.SendMessage(h3, win32con.WM_GETTEXT, buf_size, str_buffer) # 获取buffer
    str = str(str_buffer[:-1]) # 转为字符串

大神们,这是为什么,或者给个能实际运行的代码参考一下

单步可以,直接运行不行,看上去是时间差的问题,你直接运行的时候,目标程序是否在响应消息等。