我在PostMessage上度过了一段有趣的时光,想知道是否有人可以启发我。
下面的方法处理第一个左键单击,但不是第二个,我做了一些乱搞,发现使用MessageBox并点击OK甚至可以立即提供延迟/释放或者使得第二个左边需要的任何东西点击过程。
public void MouseClick(IntPtr handle)
{
PostMessage(handle, (uint)WMessages.WM_LBUTTONDOWN, 0, MAKELPARAM(521, 147));
PostMessage(handle, (uint)WMessages.WM_LBUTTONUP, 0, MAKELPARAM(521, 147));
//MessageBox.Show("WAITING...");
PostMessage(handle, (uint)WMessages.WM_LBUTTONDOWN, 0, MAKELPARAM(675, 527));
PostMessage(handle, (uint)WMessages.WM_LBUTTONUP, 0, MAKELPARAM(675, 527));
}
提前致谢。
答案 0 :(得分:-2)
这是因为当您处于MouseClick功能时,主线程消息泵被挂起。消息框调用重新启用消息泵。你可以做的是调用Application.DoEvents或在另一个线程中执行。