我正在尝试设置WebBrowser
控件的代理。当我第一次设置它们时,它可以很好地工作。当我尝试重置它们并重新导航时,它会失败。
这是代码
[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetOption(
IntPtr dwL,
int dw,
IntPtr dwB,
int dwBL);
private const int INTERNET_OPTION_END_BROWSER_SESSION = 42;
public struct SIPI
{
public int dwAT;
public IntPtr pro;
public IntPtr prB;
}
private void UseProxy(string Proxy)
{
const int PO = 38;
const int POI = 3;
SIPI ISI = default(SIPI);
ISI.dwAT = POI;
ISI.pro = Marshal.StringToHGlobalAnsi(Proxy);
ISI.prB = Marshal.StringToHGlobalAnsi("local");
IntPtr INS = Marshal.AllocCoTaskMem(Marshal.SizeOf(ISI));
Marshal.StructureToPtr(ISI, INS, true);
bool iR = InternetSetOption(IntPtr.Zero, PO, INS, Marshal.SizeOf(ISI));
}
这是用法
UseProxy(ProxyList[r]);
web1.Navigate(urlToNavigate);
...
do some magic
...
UseProxy(ProxyList[r]);
web1.Navigate(urlToNavigate);
...stuck here
我尝试使用InternetSetOption
将代理设置为0,然后再尝试设置不同的代理,但结果相同。