C# 如何单击“确定”按钮以编程方式更改IE代理

C# 如何单击“确定”按钮以编程方式更改IE代理,c#,.net,internet-explorer,registry,C#,.net,Internet Explorer,Registry,我已使用以下代码设置了Internet Explorer代理 RegistryKey RegKey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true); RegKey.SetValue("ProxyServer", "proxyserver"); RegKey.SetValue("Prox

我已使用以下代码设置了Internet Explorer代理

RegistryKey RegKey = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true);
            RegKey.SetValue("ProxyServer", "proxyserver");
            RegKey.SetValue("ProxyEnable", 1);
            RegKey.SetValue("ProxyOverride", "domains;<local>", RegistryValueKind.String);
RegistryKey RegKey=Registry.CurrentUser.OpenSubKey(“软件\\Microsoft\\Windows\\CurrentVersion\\Internet设置”,true);
SetValue(“ProxyServer”、“ProxyServer”);
RegKey.SetValue(“ProxyEnable”,1);
SetValue(“ProxyOverride”、“domains;”,RegistryValueKind.String);
运行此代码后,我可以看到代理服务器名称在Internet Explorer的代理设置中可用。但是当我在测试环境中点击网页时,我看不到它。我发现InternetExplorer的行为非常奇怪,通过这段代码设置代理后,我需要单击LAN设置中的OK按钮,然后点击网页,我才能正确地看到它


我已经搜索了4-5个小时,现在对此非常困惑。非常感谢您的帮助。

有一个用于Internet Explorer的API,用于更改设置

Wininet参考:

更改代理设置后,必须使用刷新标志调用InternetSetOption函数,以强制Internet Explorer读取注册表并重新填充其设置。如果您已经更改了注册表中的值,那么只需在之后调用以下函数(RefreshInternetExplorerSettings)即可使IE刷新

[DllImport("wininet.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern bool InternetSetOption(
    IntPtr hInternet,
    SET_OPTIONS option,
    IntPtr buffer,
    int bufferLength);

    public enum SET_OPTIONS
    {            
        INTERNET_OPTION_REFRESH = 37,
        INTERNET_OPTION_SETTINGS_CHANGED = 39,
        INTERNET_OPTION_PER_CONNECTION_OPTION = 75
    };

    private static void RefreshInternetExplorerSettings()
    {
        InternetSetOption(IntPtr.Zero, SET_OPTIONS.INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero, 0);
        InternetSetOption(IntPtr.Zero, SET_OPTIONS.INTERNET_OPTION_REFRESH, IntPtr.Zero, 0);
    }

你和这个普利坦还有麻烦吗?