без браузера - не грузит куки и проксиэкшен загрузить профиль не подходит?
В GAC добавляем:Здравствуйте, в проекте без браузера нужно из профиля(\*******.zpprofile) получить куки и прокси
подскажите, пожалуйста, снипит
System.IO.Compression.dll
System.IO.Compression.FileSystem.dll
System.Xml.dll
public class ZPProfile
{
public string Path { get; } // Путь к профилю
public string Plugins { get; private set; } // Плагины
public string Cookies { get; private set; } // Куки
public string Storage { get; private set; } // Сторадж
public string Proxy { get; private set; } // Прокси
public XmlDocument Data { get; } // Общая информация в XML, чтобы удобнее было искать
private string _entryToString(ZipArchiveEntry entry)
{
if (entry == null) return null;
return new System.IO.StreamReader(entry.Open(), Encoding.UTF8).ReadToEnd();
}
/// <summary>
/// Считываем профиль из указанного файла
/// </summary>
private void Load()
{
using (ZipArchive zip = ZipFile.Open(Path, ZipArchiveMode.Read))
{
Plugins = _entryToString(zip.GetEntry("profileplugins.zpplugin"));
Cookies = _entryToString(zip.GetEntry("profilecookie.zpcookie"));
Storage = _entryToString(zip.GetEntry("profilestorage.zpstorage"));
Proxy = _entryToString(zip.GetEntry("profileproxy.zpproxy"));
string zpdata = _entryToString(zip.GetEntry("profiledata.zpdata"));
if (!String.IsNullOrEmpty(zpdata)) Data.LoadXml(zpdata);
}
}
/// <summary>
/// Загружаем профиль из указанного файла
/// </summary>
/// <param name="profilePath">Путь к профилю</param>
public ZPProfile(string profilePath)
{
Path = profilePath;
Data = new XmlDocument();
Load();
}
}
var profile = new ZPProfile(@"C:\1.zpprofile");
return profile.Cookies;
что я не так сделал ?В GAC добавляем:
В общий код:Код:System.IO.Compression.dll System.IO.Compression.FileSystem.dll System.Xml.dll
Вызываем так:C#:public class ZPProfile { public string Path { get; } // Путь к профилю public string Plugins { get; private set; } // Плагины public string Cookies { get; private set; } // Куки public string Storage { get; private set; } // Сторадж public string Proxy { get; private set; } // Прокси public XmlDocument Data { get; } // Общая информация в XML, чтобы удобнее было искать private string _entryToString(ZipArchiveEntry entry) { if (entry == null) return null; return new System.IO.StreamReader(entry.Open(), Encoding.UTF8).ReadToEnd(); } /// <summary> /// Считываем профиль из указанного файла /// </summary> private void Load() { using (ZipArchive zip = ZipFile.Open(Path, ZipArchiveMode.Read)) { Plugins = _entryToString(zip.GetEntry("profileplugins.zpplugin")); Cookies = _entryToString(zip.GetEntry("profilecookie.zpcookie")); Storage = _entryToString(zip.GetEntry("profilestorage.zpstorage")); Proxy = _entryToString(zip.GetEntry("profileproxy.zpproxy")); string zpdata = _entryToString(zip.GetEntry("profiledata.zpdata")); if (!String.IsNullOrEmpty(zpdata)) Data.LoadXml(zpdata); } } /// <summary> /// Загружаем профиль из указанного файла /// </summary> /// <param name="profilePath">Путь к профилю</param> public ZPProfile(string profilePath) { Path = profilePath; Data = new XmlDocument(); Load(); } }
P.S. Работает только в net 4.5 и выше, если под windows xp надо, то придется использовать стороннюю либуC#:var profile = new ZPProfile(@"C:\1.zpprofile"); return profile.Cookies;
P.S. Класная вещь ) Может и сохранять данные в профаил возможно без мороки ?Ошибка при компиляции общего кода "CS0246" "Не удалось найти имя типа или пространства имен "XmlDocument" (пропущена директива using или ссылка на сборку?)". [Строка: 40; Cтолбец: 16]
Ошибка при компиляции общего кода "CS0246" "Не удалось найти имя типа или пространства имен "ZipArchiveEntry" (пропущена директива using или ссылка на сборку?)". [Строка: 42; Cтолбец: 39]
Это я ошибся, зенка компилирует код в Net 4.0 поэтому подключаться подключается, но код при компиляции пишет что нет таких методов, у меня просто в длл вынесен код, поэтому все норм работает.что я не так сделал ?
P.S. Класная вещь )
Сохранять можно, открываем для записи файл, а не для чтения и пишем что хотим.Может и сохранять данные в профаил возможно без мороки ?
могли бы вы залить сюда ваш dll файл?Это я ошибся, зенка компилирует код в Net 4.0 поэтому подключаться подключается, но код при компиляции пишет что нет таких методов, у меня просто в длл вынесен код, поэтому все норм работает.
Т.е. надо или код выносить в свою длл, или использовать стороннюю длл для работы с зип архивами, например: http://dotnetzip.codeplex.com/.
Сохранять можно, открываем для записи файл, а не для чтения и пишем что хотим.
https://www.dropbox.com/s/px6gsqbay9y3nhm/zp_profile.dll?dl=0могли бы вы залить сюда ваш dll файл?
спасибо большое!!https://www.dropbox.com/s/px6gsqbay9y3nhm/zp_profile.dll?dl=0
Добавляем в C:\Program Files (x86)\ZennoLab\RU\ZennoPoster Pro\5.10.5.1\Progs\ExternalAssemblies
В GAC
В общий код:
using ZPReadProfile;
Путь к dll указан в GAC, в общем коде тоже dll подключен, версия ZennoPoster последняя. Буду благодарен за ответ.Выполнение действия CSharp OwnCode Ссылка на объект не указывает на экземпляр объекта.
Решено - https://zennolab.com/discussion/threads/kak-poluchit-proksi-iz-profilja-v-proekte-bez-brauzera.24517/#post-169435https://www.dropbox.com/s/px6gsqbay9y3nhm/zp_profile.dll?dl=0
Добавляем в C:\Program Files (x86)\ZennoLab\RU\ZennoPoster Pro\5.10.5.1\Progs\ExternalAssemblies
В GAC
В общий код:
using ZPReadProfile;