1

我需要使用 SendMessage 来模拟目标程序中的用户点击,因为 SendMessage 会阻塞,直到它触发的事件完成处理。这样做的原因是,这种阻止提供了检测是否有任何对话框因单击而打开的机会。我目前的问题是,虽然我可以在打开模型对话框的模拟表单中的按钮上连续使用 WM_LBUTTONDOWN 和 WM_LBUTTONUP 消息进行点击工作,但我无法让它在标准 Windows 应用程序中的菜单和菜单项上工作(记事本)。任何有助于以一种可行的方式执行对菜单项的点击的帮助都会受到赞赏。我已经可以检测到它是否是一个菜单项,只需要能够使用 SendMessage 来模拟点击它并阻止它。

干杯

罗斯

4

1 回答 1

2

不幸的是,这个关于win32 钩子的页面说

模拟鼠标和键盘输入 (WH_JOURNALPLAYBACK)。Hooks 提供了唯一可靠的方法来模拟这些活动。如果您尝试通过发送或发布消息来模拟这些事件,Windows 内部不会更新键盘或鼠标状态,这可能会导致意外行为。如果使用挂钩来回放键盘或鼠标事件,则这些事件的处理方式与真实的键盘或鼠标事件完全一样。

所以看起来你可能不得不求助于某种类似于宏记录器的功能来进行自动化测试,方法是使用WH_JOURNALRECORDand WH_JOURNALPLAYBACK?

于 2009-04-29T07:07:20.383 回答