c++穿透鼠标实现后台点击,适用于任何窗口!后台鼠标

首先,将要点击的窗口上面覆盖的所有窗口,由一般模式变成置顶模式
SetWindowPos temp, -1, 0, 0, 0, 0, 1 Or 2 ‘置顶
然后再变成分层窗口的鼠标穿透模式

ret = GetWindowLong(temp, GWL_EXSTYLE)
ret = ret Or WS_EX_TRANSPARENT Or WS_EX_LAYERED
SetWindowLong temp, GWL_EXSTYLE, ret
SetLayeredWindowAttributes temp, 0, 255, LWA_ALPHA
这样鼠标相应时,只相应你设定的那个窗口,上面所覆盖的窗口只是视觉上的,从而实现后台点击!

上面为什么要置顶?
答:不置顶的话,你点击时,就激活了你选中的窗口,窗口就自动前置了,变前台了就没意思了

为什么要先置顶,后分层?
答:这个是测试了好多次,要是先分层后置顶,无法实现置顶

如何获得覆盖在上面的窗口句柄?
答:获得一个分层一个,分层后就会被忽略 WindowFromPoint(X, Y),形同透明

总结一下:上面就是主要用到的API,其中分层的那个API,对视屏以及dX画面的作用,只有专业人士才能评论,因为我确实不懂,视频会变黑,DX画面会花屏,我的解决办法就是某某某曾经提过的,将窗口的任何一点拖到屏幕外就OK了。