打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
屏蔽WebBrowser页面中的声音
屏蔽WebBrowser页面中的声音

如果你是用 TEmbeddedWB

它可以直接屏蔽 JS 圖片 背景音樂 框架 activex 等等很多東西
wb.DownloadOptions := [DontExecuteScripts,DontDownloadFrame,DownloadAndIgnoreCache];

修改注册表:
其键为HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions\MULTIMEDIA\SOUNDS
子键为CheckedValue,默认值为yes,要将其改为no

procedure TForm1.FormCreate(Sender: TObject);
var
  hDSound: Cardinal;
  pDirectSoundCreate: Pointer;
  hWinmm: Cardinal;
  pmidiStreamOpen: Pointer;
  pwaveOutWrite: Pointer;
  lp: Cardinal;
begin
  hDSound := LoadLibrary('DSound.dll');
  if hDSound > 0 then
    pDirectSoundCreate := GetProcAddress(hDSound, 'DirectSoundCreate');
  if pDirectSoundCreate <> nil then
  begin
    VirtualProtect(pDirectSoundCreate, 3, PAGE_EXECUTE_READWRITE, lp);
    Move(#$C2#$0C#$00, pDirectSoundCreate^, 3);
  end;
 
  hWinmm := LoadLibrary('Winmm.dll');
  if hWinmm > 0 then
    pmidiStreamOpen := GetProcAddress(hWinmm, 'midiStreamOpen');
  if pmidiStreamOpen <> nil then
  begin
    VirtualProtect(pmidiStreamOpen, 3, PAGE_EXECUTE_READWRITE, lp);
    Move(#$C2#$04#$00, pmidiStreamOpen^, 3);
  end;
 
  if hWinmm > 0 then
    pwaveOutWrite := GetProcAddress(hWinmm, 'waveOutWrite');
  if pwaveOutWrite <> nil then
  begin
    VirtualProtect(pwaveOutWrite, 3, PAGE_EXECUTE_READWRITE, lp);
    Move(#$C2#$0C#$00, pwaveOutWrite^, 3);
  end;
end;

你的方法的确可以达到我的目的,我把原的来函数地址保存下来还可以随时恢愎(恢愎完要刷新网页)。真是太好了,十分感谢你。

另外:1,Move(#$C2#$0C#$00, pDirectSoundCreate^, 3);//这句里的#$C2#$0C#$00参数有没有什么讲究,难道不怕正好是另一个函数的地址吗?
   2,我给您网页之后您就找到了waveOutWrite这个函数,请问您是用什么工具找的,谢谢!

1、是机器码,对应汇编语言是retn 0c。
2、可通过反汇编工具,如windbg或者ollydbg找出。

楼上的是属于挂接API 了 只不过是没有转发 而已。  有是一种方法啊



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
关于delphiwebbrowser二次点击来路问题
delphi屏蔽WebBrowser页面中传出来的声音
delphi webbrowser文本框获得焦点
webbrowser控件屏蔽网页错误
利用WebBrowser读取网页中表格的数据
Delphi中WebBbrowser的编程
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服