这是在尝试实现安卓模拟器模拟点击过程中,我使用spy++分析消息的经历。
对窗口模拟点击的方法不难,就是使用SendMessage()函数发送模拟消息。难点在于找到窗口句柄并分析出模拟点击对应的消息。而我之前对于windows消息机制了解甚少,为此还专门学习了一阵子spy++的使用方法,方法总结详见另一篇文章——《》。
下载了一个模拟器。通过spy++可以看出,这个模拟器有3个窗口。不过最下面的子窗口没有消息,有消息的是父窗口和子窗口。为了方便起见,又安装了一个画图app。
主要测试方法是在模拟器中不停画点,如果模拟成功,应当会在画图app的画布中画出一个点。考虑到模拟器大小是720×1280,所以点击位置我折中取了(500,500).
请记住这个位置,我后来可是被这个给坑惨了
……
消息列表一出来,刷新速度丧心病狂让我一脸懵逼:
这让我这个小萌新无从下手啊!折腾了好半天,最终发现:
- 标记“R”的是SendMessage()获得的返回值,没有必要去分析。
- 子窗口会定时收到WM_TIMER消息,这个对分析没用,可以直接在spy++中禁用。
- 开启“原始消息参数”和“消息原始时间”有助于更好地进行分析。
设置如下
事后,在编写完成之后总结时,我认为消息分析应当分为以下部分:
1. 激活窗口(点开最小化的窗口或使用ALT+TAB切换到窗口),此时会发出一系列消息,不妨将其称为“

最低0.47元/天 解锁文章
4727

被折叠的 条评论
为什么被折叠?



