修改IE属性怎样立即见效?(100分)

  • 主题发起人 主题发起人 leon.zhou
  • 开始时间 开始时间
L

leon.zhou

Unregistered / Unconfirmed
GUEST, unregistred user!
我写了一个小工具,可以修改IE的的属性(如禁止显示图片和视频等),
方法是修改注册表,但是修改后必须关闭IE重新打开才可以使用,
怎样可以使修改后立即见效在当前打开的IE中呢?
我需要调用那个函数去更新呢?请大虾指教!
 
uses Wininet;
try
InternetSetOption(nil, INTERNET_OPTION_REFRESH, nil, 0);
except
begin
raise Exception.Create('Error in Refresh IE setting');
exit;
end;
end;
 
with TRegistry.Create do
begin
try
RootKey := HKEY_CURRENT_USER;
OpenKey('/Software/Microsoft/Internet Explorer/Main', True);
WriteString('Display Inline Images', 'yes');
finally
Free;
end;
end;
InternetSetOption(nil, INTERNET_OPTION_SETTINGS_CHANGED, nil, 0);
//或者
//InternetSetOption(nil, INTERNET_OPTION_REFRESH, nil, 0);
我这样做过,但是不行,好像只针对于proxy和其他internet的修改才可以使用
 
难道没有人知道吗???
 
InternetSetOption(nil, INTERNET_OPTION_REFRESH, nil, 0);
//单独执行试试
 
我用它来刷新代理[:)]
 
to:D影子D
当然不管用了,我连属性都没有修改,IE怎么知道我修改了那一个呢?
to:gxcooo
我也是的^_^现在我发现了一个可能是的方法,只是我会不用,你知道怎么用吗?
使用invoke调用DISPID_AMBIENT_DLCONTROL,但是invoke的参数我不会传。
 
找到方法了没有?
 
SendNotifyMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
加这句搞定
with TRegistry.Create do
begin
try
RootKey := HKEY_CURRENT_USER;
OpenKey('/Software/Microsoft/Internet Explorer/Main', True);
WriteString('Display Inline Images', 'yes');
finally
Free;
end;
end;
SendNotifyMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);

 

Similar threads

D
回复
0
查看
878
DelphiTeacher的专栏
D
D
回复
0
查看
847
DelphiTeacher的专栏
D
后退
顶部