现有的解决方案显示了如何将InternetSetOption与C#,Python或VB一起使用。 我的问题是我没有将IE用作C#中的Web浏览器控件。 InternetSetOption需要在需要设置代理的过程中运行,因此从C#程序启动代理后,我需要在IE中设置代理。 (这很常见,因此我无法在注册表中设置代理)
要在启动IE的过程中运行InternetSetOption,可以加载文件/执行JavaScript来设置代理。 我在另一个答案(IE Enable/Disable Proxy Settings via Registry)上看到了此代码,但是我没有得到如何设置代理IP和端口的信息。
function Refresh-System
{
$signature = @'
[DllImport("wininet.dll", SetLastError = true, CharSet=CharSet.Auto)]
public static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);
'@
$INTERNET_OPTION_SETTINGS_CHANGED = 39
$INTERNET_OPTION_REFRESH = 37
$type = Add-Type -MemberDefinition $signature -Name wininet -Namespace pinvoke -PassThru
$a = $type::InternetSetOption(0, $INTERNET_OPTION_SETTINGS_CHANGED, 0, 0)
$b = $type::InternetSetOption(0, $INTERNET_OPTION_REFRESH, 0, 0)
return $a -and $b
}
我最初是在寻找一个小的HTML / JavaScript文件,当我将浏览器导航到该文件时可以使用InternetSetOption设置代理,但我同意T.J.拥挤者-可能不是这样做的方式。
任何其他方式也可以-在计算机上使用以下命令启动InternetSetOption代码后,只需在IE进程中执行它即可: Process.Start(“ IEXPLORE.EXE”,“ -nomerge” + sUrl);