首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何单击确定按钮一次编程更改IE代理

如何单击确定按钮一次编程更改IE代理
EN

Stack Overflow用户
提问于 2010-07-13 08:00:00
回答 1查看 889关注 0票数 3

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

代码语言:javascript
运行
复制
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);

运行此代码后,我可以看到代理服务器名称在Internet Explorer的代理设置中可用。但是当我在我的测试环境中点击网页时,我看不到它。我发现Internet Explorer的行为非常奇怪,在通过这段代码设置代理后,我需要在LAN设置中点击OK按钮,然后点击网页,我可以正常地看到它。

我已经找了4-5个小时了,现在对此感到非常困惑。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2010-07-13 15:20:25

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

Wininet参考资料:http://msdn.microsoft.com/en-us/library/aa385483(VS.85).aspx

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

代码语言:javascript
运行
复制
[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);
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3233202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档