//true - если добавил, false - если уже существует
 static public bool addProxyToProxyfier(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);
     }
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        void addProxifierProfile(string path_VM, string wowName, string proxyAddress)
        {
            if (!Directory.Exists(path_VM))
            {
                Log("Папки не существует!");
                return;
            }
            // myProxy neededProxy = FindProxyInListByAdress(proxList, richTextBox_proxlist.Lines[0].Trim());

            try
            {
                List <myProxy> proxList    = LoadProxyList(path_VM + @"\Dropbox\AccManager\proxyList.xml");
                myProxy        neededProxy = GetProxyByAddress(proxyAddress, proxList);

                string    Proxifier_Settings_File = $@"C:\Users\{Environment.UserName}\AppData\Roaming\Proxifier\Profiles\Default.ppx";
                XDocument doc = XDocument.Load(Proxifier_Settings_File);

                int    maxId     = GetMaxId(doc);
                string newId_str = (maxId + 1).ToString();

                ChangeEncryptionMode_Disabled(doc);

                if (!checkProxyServerByAdress(doc, proxyAddress))
                {//если такого еще нет, то делем новый ид+1
                    addProxyToProxyfier(doc, neededProxy, newId_str);
                }
                else
                {//если прокси уже есть в списке то запонимаем его ИД
                    newId_str = getProxyID_byAddress(doc, neededProxy.Adress);
                }

                if (addRuleToProxyfier(doc, $"{wowName}.exe ; {wowName}-32.exe; {wowName}-64.exe", newId_str, wowName) == false)
                {
                    Log("Файл профилей Proxifier не менялся, применять настройки не будем.");
                    return;
                }

                deleteCrap_Defaults(doc);

                doc.Save(Proxifier_Settings_File);

                Log("файл с настройками проксифайера сохранен");

                Process.Start($@"C:\Users\{Environment.UserName}\AppData\Roaming\Proxifier\Profiles\Default.ppx");

                Click_OK_Proxifier();   //принимает изменение настроек

                Log("настройки проксифайера применены");
            }
            catch (Exception ex)
            {
                Log(ex.Message);
                //throw;
            }
        }