塞翁364 发表于 2024-3-5 09:21:05

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


首先,将要点击的窗口上面覆盖的所有窗口,由一般模式变成置顶模式

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了

以下是我把它做成插件,可供大家练习使用,或许你会有更好的创意,到时可不要独自享受哦!
页: [1]
查看完整版本: 穿透鼠标实现后台点击,适用于任何窗口!后台鼠标