也许你就是被这标题吸引来的,呵呵!
好久没发帖了,勾引一下大家的胃口,当然有的人已经猜出原理了!
既然来了,都要把原理学回家,不然就没意思了!
很多游戏现在都不支持后台消息鼠标,要实现真的不是简单的,什么注入dll啊,什么hook俺也学不懂,那就简简单单另辟蹊径了
下面来讲讲原理吧(下面的玩玩可以,用于实际不现实,俺也不藏了,看到这么多人回复,良心过意不去,呵呵)
首先,将要点击的窗口上面覆盖的所有窗口,由一般模式变成置顶模式
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了
以下是我把它做成插件,可供大家练习使用,或许你会有更好的创意,到时可不要独自享受哦!
浙公网安备 33010602011771号