在webborwser中,我想重载Invoke方法实现禁止webbrowser的脚本调试应该怎么做?(300分)

  • 主题发起人 主题发起人 iamy
  • 开始时间 开始时间
I

iamy

Unregistered / Unconfirmed
GUEST, unregistred user!
求教:
在webborwser中,我想重载Invoke方法实现禁止webbrowser的脚本调试应该怎么做?
谢谢!
//在TEmbeddedWB中通过重载此方法实现对外围环境参数的设置
function TEmbeddedWB.Invoke(DispID: Integer;
const IID: TGUID;
LocaleID: Integer;
Flags: Word;
var Params;
VarResult, ExcepInfo,
ArgErr: Pointer): HResult;
begin
Result := S_OK;
if (Flags and DISPATCH_PROPERTYGET <> 0) and (VarResult <> nil) and
(DispId = DISPID_AMBIENT_DLCONTROL) then
PVariant(VarResult)^ := FDownloadOptionValue
else
if Assigned(FOnInvoke) then
Result := FOnInvoke(DispId, IID, LocaleID, Flags, TagDispParams(Params),
VarResult, ExcepInfo, ArgErr)
else
Result := inherited Invoke(DispID, IID, LocaleID, Flags, Params,
VarResult, ExcepInfo, ArgErr);
end;
 
http://support.microsoft.com/default.aspx?scid=kb;en-us;261003
呵呵
 
我记得embeddedwb好像有这个功能啊?抄就可以了。
 
在IE中是一个注册表配置, 可以通过修改注册表解决此问题
可使用REGMON程序跟踪具体的注册表修改位置

下面是BCB的代码, 完全实现, 简单对下面的注册表位置写入数据就可以搞定, 具体写注册表的方法搜索偶以前的贴子:
//禁止进入网页脚本调试器 htw add 20021209 begin
try
{
if(AgentForm->gbIsWebBrowserSilent == true) //htw add 20060208 spring comic
{
MyWriteRegisryString(HKEY_CURRENT_USER,
"//Software//Microsoft//Internet Explorer//Main",
"Disable Script Debugger",
"yes");
}
}
catch(...)
{
}
//禁止进入网页脚本调试器 htw add 20021209 end
 
多人接受答案了。
 
后退
顶部