我使用SendMessage()
发送BM_CLICK
到打开弹出窗口的按钮,然后尝试使用FindWindow()
找到此窗口的ID。当我手动单击按钮或按enter键一次选择按钮时,我可以找到窗口ID,但是当我发送按钮BM_CLICK
消息时,我无法找到窗口。我设了个计时器,以防我找窗户找得太早,但运气不好。实际点击和使用BM_CLICK
有什么区别会导致这个问题吗?下面是我的代码:
Call SendMessage(hist_ID, BM_CLICK, 0, 0)
Sleep 500
hist_window_id = FindWindow("ThunderRT6FormDC", "Select History Data")
timeout = 0
Do While hist_window_id = 0
If timeout < 20 Then
Sleep 50
hist_window_id = FindWindow("ThunderRT6FormDC", "Select History Data")
timeout = timeout + 1
Else
MsgBox "System Timeout"
Exit Function
End If
Loop
SendMessage()
等待消息被处理后再继续。如果按钮单击事件处理程序正在显示一个模态窗口,它可能会阻塞您的VB程序,直到窗口被解除。使用PostMessage()
代替。