修改ie配置后,如何让已经打开的ie及时更新(50分)

  • 主题发起人 DreamTiger
  • 开始时间
D

DreamTiger

Unregistered / Unconfirmed
GUEST, unregistred user!
通过对注册表的修改,可以控制ie是否显示图片,但是,
指对新打开的ie有效。对于已经打开的ie,refresh都
没用。它会一直按照启动时候的配置运行。但如果直接在
ie中通过工具-〉internet选项进行设置的话,其他ie
也会变。不知道这是怎么实现的。
 
IE可能是把注册表的内容读到内存中,就象我们平时写程序
一样声明几个变量,然后从注册表中读取数据到变量中,
你在IE中配置显示方式,IE肯定是直接修改变量的直,然后写到注册表
中,同时刷新,而你修改注册表当然影响不了IE的当前显示方式
 
会不会是用消息通知的方式?那样的话就好办了,回去试试
 
xueminliu:如果是按你的说法,我打开一个新的ie的话,它读取的是注册表中的,
还是内存中的呢?事实上它读的是注册表中的。那么,内存中的应该
也被改动了吧,可以前打开的就不受影响,所以说奇怪。
 
不一定!IE像一个MID程序一样!可能维护这一个“全局”变量!
没看修改配置后,OK要过好长时间吗?RESTART PC:)
 
也是,我也正在为这个头疼。比如说我用注册表修改了代理服务器,就必须重新打
开一个新的ie进程才行(新建窗口没用),否则的话,它还会用原来的设置

不知道ms是否提供了ie internet options 的接口?



 
CJ:我还是不懂你的意思。你指的维护一个全局变量是什么意思?
我说的,如果是全局变量的话,为什么我打开一个新窗口,
它用的是注册表的配置,而以前打开的用的还是以前的配置?
如果说是全局变量,那么打开新窗口的时候,它应该刷新了
吧,那么原来的窗口也应该用新的配置才对啊?至于你说的
OK后要很长时间,我可以理解为它在查找其他的ie,并且向
他们发送消息,修改配置。
 
可能是这样,已经打开的窗口共享全局变量,当新打开一个ie窗口时,它从注册表里读取信
息并更新全局变量,

>而以前打开的用的还是以前的配置

在我的机子上以前打开的也更新了。
 
elan:你用的是什么系统?我在nt4+sp5+ie5上,通过修改注册表来修改
ie的配置,但是只对新打开的ie起作用,对已经打开的ie没有影响。
 
win98se+ie5

但是我只改过代理服务器,别的没试过
 
elan:你是用程序改的还是手工改的?改改显示图片看看。
 
DreamTiger:
改后Refresh是可以的呀,我是这样该的,先启动IE,再改IE的显示图片的显示,
再刷新。不过我使用的代理服务器。你如果能成功,就可以使用张辉的方法来刷新
每一个已经启动的IE.
 
前卫:我也是用Proxy,修改了显示图片后,refresh前面打开的ie,没效果。
我不知道是不是我的程序有问题,能否写出你在程序中修改ie设置的代
码,我看看跟我的有什么区别没有。
 
DreamTiger:
改动应该是一样的,不过改动以后要
SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
 
Dream Tiger:

看来改动以后需要再开一个隐藏的ie窗口来刷新设置,再关闭隐藏窗口了

 
就是一句 SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
把所有问题都解决了,其他各位只好抱歉了。
 
>是一句 SendMessage(HWND_BROADCAST,WM_SETTINGCHANGE,0,0);
>把所有问题都解决了,其他各位只好抱歉了。

我试了,怎么不行?
 

Similar threads

D
回复
0
查看
734
DelphiTeacher的专栏
D
D
回复
0
查看
705
DelphiTeacher的专栏
D
顶部