static public List <myProxy> LoadProxyList(string path) { List <myProxy> proxyList = new List <myProxy>(); //читаем данные из файла XDocument doc = XDocument.Load(path); //проходим по каждому элементу в найшей library //(этот элемент сразу доступен через свойство doc.Root) foreach (XElement el in doc.Root.Elements()) { myProxy prox = new myProxy(); prox.Adress = el.Attribute("Adress").Value; prox.Port = el.Attribute("Port").Value; prox.ProxyType = el.Attribute("ProxyType").Value; if (el.Attribute("Auth").Value == "false") { prox.Auth = false; } else { prox.Auth = true; } prox.Login = el.Attribute("Login").Value; prox.Password = el.Attribute("Password").Value; proxyList.Add(prox); } Log("proxyList загружен."); return(proxyList); }
//true - если добавил, false - если уже существует static public bool addProxy(XDocument doc, myProxy proxx, string _id = "777", string options = "48") { if (!checkProxyServerByAdress(doc, proxx.Adress)) { // XDocument doc = XDocument.Load(path); XElement proxList = doc.Root.Element("ProxyList"); // new XElement("ProxyList"); //int maxId = doc.Root.Elements("track").Max(t => Int32.Parse(t.Attribute("id").Value)); XElement prox = new XElement("Proxy", new XAttribute("id", _id), new XAttribute("type", proxx.ProxyType), new XElement("Address", proxx.Adress), new XElement("Port", proxx.Port), new XElement("Options", options), new XElement("Authentication", new XAttribute("enabled", proxx.Auth), new XElement("Username", proxx.Login), new XElement("Password", proxx.Password))); proxList.Add(prox); //doc.Root.Add();.Elements("ProxyList").Add(); // doc.Save(path); return(true); } else { return(false); } }
/* * static void openCrome_MainIP(string accMail) * { * string chromeUserData_path = $@"C:\Users\{Environment.UserName}\AppData\Local\Google\Chrome\User Data"; * //чистим юзердату * if (Directory.Exists(chromeUserData_path)) * { * Directory.Delete(chromeUserData_path, true); * Log("folder deleted"); * } * // string accMail = @"herrma"; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * string accUserData_path = $@"C:\Users\{Environment.UserName}\AppData\Local\Google\Chrome\" + accMail + @"\User Data"; * * //если уже существует юзердата для аккаунта, то перемещаем ее на место юзердаты * if (Directory.Exists(accUserData_path)) * { * Directory.Move(accUserData_path, chromeUserData_path); * Log("folder moved"); * } * * //тпепрь откроем хром * Log("opening chrome..."); * Process chromeProcess = new Process(); * chromeProcess.StartInfo.FileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"; * chromeProcess.Start(); * //и ждем пока нами закроется браузер * chromeProcess.WaitForExit(); * Log("browser closed..."); * * Thread.Sleep(3000); * * //если есть юзердата в папке хрома, то перемещаем ее на место юзердаты аккаунта * if (Directory.Exists(chromeUserData_path)) * { * Directory.Move(chromeUserData_path, accUserData_path); * Log("folder moved"); * } * } */ static bool setProxyServer_and_Rule1(XDocument doc, myProxy proxx, string Proxifier_Settings_File) //true - потом УДАЛЯТЬ ПРОКСИ ; false - потом НЕ УДАЛЯТЬ { // XDocument doc = XDocument.Load(Proxifier_Settings_File); deleteTop_Rule_Ever(doc); deleteProxyes777(doc); // deleteTop_Rule_Ever_and_hisProxy(doc); deleteCrap_Defaults(doc); var deleteProxyFLAG = false; if (!checkTop_Rule_Ever(doc)) { if (!checkProxyServerByAdress(doc, proxx.Adress)) { addProxy(doc, proxx, "777"); addRule(doc, "chrome.exe", "777"); deleteProxyFLAG = true; } else { addRule(doc, "chrome.exe", getProxyID_byAddress(doc, proxx.Adress)); deleteProxyFLAG = false; } doc.Save(Proxifier_Settings_File); LogSUCCESSFUL(); printNameId_value(doc); } else { Log("уже записано или еще чета"); Log("!!!!!! была ошибка ОБЯЗАТЕЛЬНО ВПРОВЕРИТЬ НАСТРОЙКИ ПРОКСИФАЕРА"); Log("!!!!!! была ошибка ОБЯЗАТЕЛЬНО ВПРОВЕРИТЬ НАСТРОЙКИ ПРОКСИФАЕРА"); Log("!!!!!! была ошибка ОБЯЗАТЕЛЬНО ВПРОВЕРИТЬ НАСТРОЙКИ ПРОКСИФАЕРА"); return(false); } return(deleteProxyFLAG); }
public static void openChrome_viaProxy(XDocument doc, string accMail, myProxy proxx, string Proxifier_Settings_File) { var deleteProxyFlag = true; string chrome_UserData_path = $@"C:\Users\{Environment.UserName}\AppData\Local\Google\Chrome\User Data"; string acc_UserData_path = $@"C:\Users\{Environment.UserName}\AppData\Local\Google\Chrome\" + accMail + @"\User Data"; //создать папку почты если ее нет if (!Directory.Exists(acc_UserData_path)) { Directory.CreateDirectory(acc_UserData_path); Log("mail folder created"); } //чистим юзердату if (Directory.Exists(chrome_UserData_path)) { DirectoryInfo di = new DirectoryInfo(chrome_UserData_path); foreach (FileInfo file in di.GetFiles()) { file.Delete(); } Thread.Sleep(50); foreach (DirectoryInfo dir in di.GetDirectories()) { try { dir.Delete(true); } catch (Exception) { // throw; } } Directory.Delete(chrome_UserData_path, true); Log("folder deleted"); } // string accMail = @"*****@*****.**"; // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //если уже существует юзердата для аккаунта, то перемещаем ее на место юзердаты if (Directory.Exists(acc_UserData_path)) { Directory.Move(acc_UserData_path, chrome_UserData_path); Log("folder moved"); } //ставим прокси для хрома deleteProxyFlag = setProxyServer_and_Rule1(doc, proxx, Proxifier_Settings_File); Process.Start($@"C:\Users\{Environment.UserName}\AppData\Roaming\Proxifier\Profiles\Default.ppx"); Click_OK_Proxifier(); //принимает изменение настроек //тпепрь откроем хром Log("opening chrome..."); Process chromeProcess = new Process(); chromeProcess.StartInfo.FileName = @"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"; chromeProcess.Start(); //и ждем пока нами закроется браузер chromeProcess.WaitForExit(); Log("browser closed, deleting proxy server and rule..."); //если прокси существовал до нас, то не трогаем его. если прокси добавили мы, то удалим его. removeProxyServer_and_Rule(doc, deleteProxyFlag, Proxifier_Settings_File); Process.Start($@"C:\Users\{Environment.UserName}\AppData\Roaming\Proxifier\Profiles\Default.ppx"); Click_OK_Proxifier(); //принимает изменение настроек //если есть юзердата в папке хрома, то перемещаем ее на место юзердаты аккаунта if (Directory.Exists(chrome_UserData_path)) { try { Directory.Move(chrome_UserData_path, acc_UserData_path); Log("folder moved"); } catch (Exception ex) { //throw; } } }