1

我正在尝试使用 SendMessage() 函数设置“编辑”控件文本框的文本值。我可以在大约 75% 的时间内设置文本,但有时该功能会失败。为什么它有时会起作用而使其他人失败?我总是得到正确的窗口句柄并且对它可能是什么感到困惑?这是我的代码:

attempt = 1
retry:
    'Find open window textbox
    temp_id = 0
    temp_id = FindWindowEx(open_id, ByVal 0&, "ComboBoxEx32", vbNullString)
    temp_id = FindWindowEx(temp_id, ByVal 0&, "ComboBox", vbNullString)
    text_id = FindWindowEx(temp_id, ByVal 0&, "Edit", vbNullString)

    'Select textbox and enter text then press open button
    Call SendMessage(text_id, WM_LBUTTONDBLCLK, 0, 0)
    Sleep 100
    text = filename

    Call SendMessage(text_id, WM_SETTEXT, 0&, ByVal text)
    DoEvents
    Sleep 100

    If GetWindowTextLength(text_id) = 0 Then
        If attempt < 3 Then
            attempt = attempt + 1
            GoTo retry
        End If
    End If
4

0 回答 0