检测屏幕上的坐标是否是可交互的。

时间:2017-07-20 17:02:32

标签: c++ c windows api

这是关于C / C ++语言 - > 是否有某种Windows API可以检查屏幕上的给定位置是否可点击?例如,左下角的窗口图标,程序右上角的红色X,或者网页浏览器搜索引擎中的“输入”按钮。 这听起来有点复杂,但也许通过IPC有办法做这样的事情?谢谢!

编辑:通过点击,我的意思是你可以与之交往/互动的任何东西。

1 个答案:

答案 0 :(得分:1)

屏幕上几乎所有内容都是可点击的(除了按HTERRORHTNOWHEREHTTRANSPARENT点击测试的内容。

理智的方法是使用UI Automation / MSAA。致电WindowFromPointChildWindowFromPointRealChildWindowFromPoint以获取HWND,然后致电AccessibleObjectFromWindow以获取IAccessible界面并致电accDoDefaultAction

一个不太理智的选择是使用WM_NCHITTEST找出鼠标结束的内容并发送一些假的WM_NCLBUTTON*消息。