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 个代码片段。

4

2 回答 2

0

让我们尝试这样:我也讨厌重新启动,并与它们作斗争,所以,您可以尝试卸载 ieplore.dll ,然后重新加载它,但不会导致 IE 崩溃。提到 *.dll 是 IE 的核心,确实很棘手,比如 *.chm 文件在没有 IE 的情况下加载它,如果 URL 在里面,它会打开并加载,你不会看到 IE 进程运行在里面任务管理器。

于 2013-03-15T05:23:23.643 回答
0

根据您所追求的,完全重新启动似乎是不必要的。一旦打开新的 Internet Explorer,设置就会应用于新的 Internet Explorer 和任何其他应用程序(例如 Firefox)。

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

同样,根据您所追求的,可能有现成的工具可以做到这一点。它满足了我的需求:我现在正在使用IE Proxy Toggle

于 2013-09-06T03:15:18.717 回答