窗体穿透

今天想仿制酷狗7的关闭效果, 用spy++竟然hook不住, 我以为它不是窗体,而是直接在桌面窗口上画图, 开始的想法是得到桌面没有绘制子窗口时的dc,然后在上面画, 但是我向他发送WM_PRINTCLIENT时,得到的黑色的背景, 最后查文档发现发送给这个消息,接受者窗口应该实现这个消息的处理, 最后在网上找到这篇神文:

http://www.fengyuan.com/article/wmprint.html

但是我发现还是不对, 因为这样也无法实现酷狗的关闭效果, 况且上面文章提供的subclass方法是使用的SetWindowlong修改消息处理过程来实现的,然而SetWindowlong在跨进程调用会失败,不过网上也有解决办法,比如Windows核心编程中提到的远程进程注入.

然后我发现如果窗口可以穿透,那么久可以实现酷狗的关闭效果,下面是窗体穿透的方法:

DWORD   dwNewLong =   GetWindowLong(hWnd,   GWL_EXSTYLE); 
dwNewLong   |=   WS_EX_TRANSPARENT   |WS_EX_LAYERED; 
SetWindowLong(hWnd,   GWL_EXSTYLE,   dwNewLong);

这样修改后真的可以穿透了,并且spy++也hook不住, 不知酷狗是不是这样弄的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值