2013-03-15 90 views
0

变化对Windows注册表不会立即生效更改不会立即生效

我想通过以下2的代码更改IE的代理设置网页摘要

使能由代理这个代码

from winreg import * 
with OpenKey(HKEY_CURRENT_USER,r"Software\Microsoft\Windows\CurrentVersion\Internet Settings" ,0, KEY_ALL_ACCESS) as key: 
    SetValueEx(key,"ProxyServer",0, REG_SZ, "127.0.0.1:8087") 
    SetValueEx(key,"ProxyEnable",0, REG_DWORD, 1) 
    SetValueEx(key,"ProxyOverride",0, REG_SZ, "<local>") 
FlushKey(key) 

这段代码

from winreg import * 
with OpenKey(HKEY_CURRENT_USER,r"Software\Microsoft\Windows\CurrentVersion\Internet Settings" ,0, KEY_ALL_ACCESS) as key: 

    DeleteValue(key,"ProxyServer") 
    SetValueEx(key,"ProxyEnable",0, REG_DWORD, 0) 
    DeleteValue(key,"ProxyOverride") 
    FlushKey(key) 
禁用代理

但在Windows注册表的变化不立即生效,所以有一些方法来更改Windows注册表,并让更改立即生效,而无需重新启动IE?

顺便说一下,我使用winxp上的代码,我将在我的PyQt应用程序中嵌入2个代码片段。

回答

0

让我们尝试这样:我恨太重启,并与他们作斗争,所以,你可以尝试卸载ieplore.dll,然后重新加载它,但没有崩溃的IE浏览器。提到的* .dll是IE的一个核心,并且非常棘手,例如,* .chm文件在没有IE的情况下加载它,并且如果URL在里面,它会打开并加载,而您不会看到IE进程在运行任务管理器。

0

根据你以后的情况,完全重新启动似乎没有必要。只要打开新的Internet Explorer,就会将这些设置应用于新的Internet Explorer以及任何其他应用程序(如Firefox)。

如果您正在编写脚本,您可能需要创建一个带有嵌入式Internet Explorer的隐藏窗口。

再一次,根据你以后的情况,可能有准备好的工具可以做到这一点。它解决了我的需求:我现在使用IE Proxy Toggle