有些人在程序嵌入一个webbrowser,然后里面打开网页,其中的声音不知道怎么屏蔽。
其实很简单,通过API HOOK干掉以下几个函数就行:
DirectSoundCreate
waveOutWrite
midiStreamOpen
API HOOK的类推荐使用Detours,微软官方推荐的库。HOOK掉,然后直接返回一个0即可。
据说WIN7下不可用,谁测试了给我反馈一下,继续跟进研究。
...
More...
blackfeather
2013/11/25
℃
1评论
好久没有写文章,发一篇顶顶博客访问量。别人建议转一些比较好的代码也贴过来,但是我打算这里主要发自己原创的代码,所以么。。流量该多少就多少吧。。。
回到主题,在webbrowser中点击某链接网上几乎都是用document对象模拟点击,这个方法基本能应对一般的情况,但是例如广告联盟的点击XXX就有检测机制(不多解释,你们懂的)。所以完全模拟鼠标的点击事件就比较完美。于是我用了最常见的SendMessage。
接下来就要解决一个问题,webbrowser的句柄问题。从控件本身得到的句柄不是真正的浏览窗口的句柄,用SPY++看一下就能看出来,这里不贴图了。按照这个窗体的结构,用以下代码可以获取到网页的窗口的句柄。
...
More...
blackfeather
2011/3/7
℃
0评论
很多人都头疼过一个问题就是:在webbrowser中的对话框怎么屏蔽? 比如<script>alert('test')</script>这种弹出来一个对话框,内容为test(HTML里面的Javascript,懂网页的人应该都明白)。对于这种的屏蔽网上有两种方式:
1、在BeforeNavixxxx的事件中执行 webbrowser.Document.parentWindow.execScript "function alert(){return;}","Javascript" 。大概意思就是执行在webbrowser中执行一句JavaScript,把alert这个弹窗的函数重写了,执行的时候直接return。优点是杀人于无形,主动过滤,缺点是貌似不能屏蔽script在frame中的弹窗。。。
...
More...
blackfeather
2010/2/28
℃
1评论