private void onElapsed(object sender, ElapsedEventArgs e) { _timer.Stop(); if (_proxyList != null && _proxyList.Count > 0) { while (_currentIdx < _proxyList.Count) { bool isMachieSetting = true; bool isPac = false; string proxy = ""; if (_proxyList[_currentIdx].IsPac) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < _proxyList[_currentIdx].Domains.Length; i++) { if (i > 0) { sb.Append(",'" + _proxyList[_currentIdx].Domains[i] + "'"); } else { sb.Append("'" + _proxyList[_currentIdx].Domains[i] + "'"); } } string txt = _pacTemplate.Replace("%URLPATTERNS%", sb.ToString()) .Replace("%PROXY%", _proxyList[_currentIdx].ServerName + ":" + _proxyList[_currentIdx].Port.ToString()); File.WriteAllText("pactest.pac", txt); proxy = "file://" + Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), "pactest.pac").Replace("\\", "/"); isMachieSetting = true; isPac = true; } else { proxy = _proxyList[_currentIdx].ServerName + ":" + _proxyList[_currentIdx].Port.ToString(); isMachieSetting = _proxyList[_currentIdx].IsMachineSetting; isPac = false; } try { WinINet.SetConnectionProxy(isMachieSetting, proxy, isPac); if (_currentIdx == _proxyList.Count - 1) { if (_isRewind) { _currentIdx = 0; } else { return; } } else { _currentIdx++; } break; } catch (Exception ex) { continue; } } _timer.Start(); } }
public void DisableProxy() { WinINet.DisableSystemProxy(); }
public void SetHttpProxy(string proxyServer, bool isMachineSetting) { WinINet.SetConnectionProxy(isMachineSetting, proxyServer, false); }
public void SetPacProxy(string pacPath) { WinINet.SetConnectionProxy(true, pacPath, true); }