【求助】获取/截取窗体后面的图像
vb.net吧
全部回复
仅看楼主
level 8
最好能够不调用api
我需要做窗体背景高斯模糊,但是因为系统的截图功能是包括me窗体的,我想只获取窗体之后的图像
大神求助啊啊啊!
2015年02月07日 10点02分 1
level 8
竟然没人t
2015年02月07日 15点02分 3
level 9
不用api是肯定不行的,有一个api能满足你的要求,PrintWindows 这个api只要你有句柄,不管你的窗口是被遮挡还是在屏幕外,只要不是最小化,他都能截取的到,你试试
2015年02月08日 00点02分 4
thanks,关键是怎么拿到句柄?>_<....
2015年02月09日 14点02分
@gggggcccccyyyy 句柄很好找啊 findwindows这个api就可以找到句柄的 ,只要不是QQ或者360这种变态软件屏蔽了这类api,其他的都能得到
2015年02月09日 14点02分
回复 gggggcccccyyyy :有,那就不需要api了~直接先隐藏之后使用GDI+的CopyfromScreen方法就行
2015年02月10日 10点02分
回复 Yentre :我不能隐藏,我要做类似aero效果的每秒30桢啊
2015年02月10日 15点02分
level 12
换种思路试试。可以先暂时隐藏窗体(或者opacity设成满的)然后再截取整个屏幕,然后根据你的窗体位置和大小来裁剪(可以不调用api)
2015年02月08日 01点02分 5
但是这样做出的areo会很卡的
2015年02月08日 12点02分
thanks,关键是hide之后再show会闪而且收进底下再弹出很不爽,opacity也会闪
2015年02月09日 14点02分
回复 gggggcccccyyyy :wpf欢迎你,用wpf吧
2015年02月10日 02点02分
@gggggcccccyyyy 你可以做个动画效果什么的就不觉得突然了
2015年02月10日 10点02分
level 13
CopyFromScreen
2015年02月10日 11点02分 6
level 13
如果要获得窗体后面的图像,截图时隐藏窗体。
2015年02月10日 11点02分 7
level 13
如果不像隐藏,那就只能注入Dwm.exe,那里面有你想要的数据。
2015年02月10日 11点02分 8
thanks,必须不能隐藏,那么请问下有没有注入dwm的代码实例呢?
2015年02月10日 15点02分
回复 gggggcccccyyyy :这个很麻烦,你反编译一下aeroglass 8.1
2015年02月10日 16点02分
@Nukepayload2 好的,thanks
2015年02月14日 03点02分
level 12
我觉得楼上大神的方法对于
lz
几乎无法实现(好像只有他自己才能实现吧。。。。。)膜拜大神[真棒]
2015年02月13日 01点02分 9
而且不支持xp
2015年02月13日 02点02分
虽然xp使用率远小于win7
2015年02月13日 02点02分
整个过程真的非常麻烦。得有相关的符号文件,需要Hook好几个API
2015年02月13日 02点02分
@Nukepayload2 我真的听不懂。。。这个真的挺麻烦得,拿到handles截图窗口很简单,但是我现在需要截下来除了我窗体之外所有的,或者直接拿到我窗体下方窗体的handles,然后再截图+模糊填充窗体背景,但是如果我的窗体一半在后方窗体的外面,拿到hwnd截图就会一半是黑的。。我在风中凌乱了。。
2015年02月14日 03点02分
level 12
你这样,拿到屏幕背景和所有窗体的截图和位置,然后拼起来试试。
2015年02月14日 03点02分 10
1