<?xml version="1.0" encoding="utf-8" ?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:tt="http://teletype.in/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/"><title>WADIM</title><author><name>WADIM</name></author><id>https://teletype.in/atom/midaw007</id><link rel="self" type="application/atom+xml" href="https://teletype.in/atom/midaw007?offset=0"></link><link rel="alternate" type="text/html" href="https://teletype.in/@midaw007?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=midaw007"></link><link rel="next" type="application/rss+xml" href="https://teletype.in/atom/midaw007?offset=10"></link><link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></link><updated>2026-06-03T03:36:51.592Z</updated><entry><id>midaw007:comparison_of_solutions</id><link rel="alternate" type="text/html" href="https://teletype.in/@midaw007/comparison_of_solutions?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=midaw007"></link><title>Сравнение решений WraithCore, InfiniteServer, AntyZenno</title><published>2026-04-15T07:12:39.656Z</published><updated>2026-04-21T21:24:54.933Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img3.teletype.in/files/23/b2/23b2839f-6ed3-453d-9035-1a566d033a26.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img1.teletype.in/files/80/a2/80a2ab0d-da9b-4f89-8b0a-4661d515508f.png&quot;&gt;В данной статье мы расмотрим основные отличия наших решений, посмотрим на их плюсы и минусы, а так же поможем вам определится с выбором (проекты идут в порядке от более старого до более нового)</summary><content type="html">
  &lt;p id=&quot;Gcq7&quot;&gt;В данной статье мы расмотрим основные отличия наших решений, посмотрим на их плюсы и минусы, а так же поможем вам определится с выбором (проекты идут в порядке от более старого до более нового)&lt;/p&gt;
  &lt;h2 id=&quot;3Upj&quot;&gt;1) Плагин AntyZenno&lt;/h2&gt;
  &lt;figure id=&quot;vrSy&quot; class=&quot;m_retina&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/ac/85/ac85cbf1-d7d9-414b-84c4-fdf16099fb5f.png&quot; width=&quot;595&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;AYXQ&quot;&gt;&lt;strong&gt;Плюсы:&lt;/strong&gt;&lt;/p&gt;
    &lt;ul id=&quot;koy3&quot;&gt;
      &lt;li id=&quot;0fgU&quot;&gt;Удобный и понятный интерфейс&lt;/li&gt;
      &lt;li id=&quot;8Ghb&quot;&gt;Не нужно ничего настраивать и доустанавливать, достаточно всего лишь загрузить плагин в ZennoPoster, и все готово&lt;/li&gt;
      &lt;li id=&quot;7P2f&quot;&gt;Встроенный запуск некоторых антидетект браузеров&lt;/li&gt;
      &lt;li id=&quot;GreJ&quot;&gt;Возможность подключиться к любому антидетект браузеру по протоколу CDP&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;WtVz&quot;&gt;&lt;strong&gt;Минусы:&lt;/strong&gt;&lt;/p&gt;
    &lt;ul id=&quot;koy3&quot;&gt;
      &lt;li id=&quot;uQiM&quot;&gt;Сложность обновлений, мельчайшее изменение исходного кода (плагина) и загрузки новой версии может привести к ошибкам и непредсказуемости работы шаблона, приходиться проверять весь шаблон заново&lt;/li&gt;
      &lt;li id=&quot;Wsfz&quot;&gt;Из-за наличия интерфейса, могут происходить сбои в отображении элементов управления&lt;/li&gt;
      &lt;li id=&quot;6Glb&quot;&gt;Сам интерфейс может прогружаться до 2 секунд по времени, что при разработке шаблона в котором имеется 100+ экшенов (кубиков) приводит к потере большого количества времени&lt;/li&gt;
      &lt;li id=&quot;n6se&quot;&gt;Устаревший драйвер&lt;/li&gt;
      &lt;li id=&quot;cznv&quot;&gt;Проблемы работоспособности браузеров c версией ядра &amp;gt; 138&lt;/li&gt;
      &lt;li id=&quot;XLlk&quot;&gt;Проблемы обновлений, устранения багов и добавления новых функций (связано с пунктом №1 данного раздела) &lt;/li&gt;
      &lt;li id=&quot;owYK&quot;&gt;Достаточно ограниченный набор функций и возможностей&lt;/li&gt;
      &lt;li id=&quot;ugiK&quot;&gt;Невозможность выписать ZennoBox&lt;/li&gt;
      &lt;li id=&quot;IV90&quot;&gt;Устаревшие методы скрытия автоматизации, большинство сайтов могут видеть процесс автоматизации&lt;/li&gt;
      &lt;li id=&quot;wJ7P&quot;&gt;Низкий уровень эмуляции действий человека&lt;/li&gt;
      &lt;li id=&quot;208h&quot;&gt;Ограниченная настройка действий&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/section&gt;
  &lt;p id=&quot;zO6V&quot;&gt;Как видно выше, данное решение имеет больше минусов чем плюсов, поэтому я считаю, что на данный момент его использования является не рациональным и не удобным, исходя из этого, я не считаю нужным продолжать поддержку данного решения (AntyZenno все еще доступен и работает)&lt;/p&gt;
  &lt;h2 id=&quot;h8ov&quot;&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;Exj4&quot;&gt;2) InfiniteServer.exe&lt;/h2&gt;
  &lt;figure id=&quot;TqTf&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/de/6b/de6b0f9e-df93-4b45-b6fe-e6f89af464c6.png&quot; width=&quot;249&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;e3Zn&quot;&gt;&lt;a href=&quot;https://teletype.in/@midaw007/InfiniteServerHelp&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;Установка и запуск InfiniteServer.exe&lt;/strong&gt;&lt;/a&gt;&lt;/h3&gt;
  &lt;p id=&quot;3v3y&quot;&gt;Принцип работы данного решения был продиктован проблемами ZennoPoster и плагина AntyZenno, из-за чего весь исходных код программы был разделен на 2 части: &lt;/p&gt;
  &lt;ol id=&quot;GGgB&quot;&gt;
    &lt;li id=&quot;xTPB&quot;&gt;Библиотека InfiniteClient.dll - по сути это просто C# оболочка, для отправки данных из ZennoPoster в InfiniteServer.exe.&lt;/li&gt;
    &lt;li id=&quot;a4c4&quot;&gt;InfiniteServer.exe - исполняемый файл, который обрабатывает команды от ZennoPoster(подсредством InfiniteClient.dll), на своей стороне выполняет получнные команды (клик, ввод текста, парсинг, навигация по страницам, работа со вкладками и тд.) после чего отсылает результат выполненного действия обратно в ZennoPoster&lt;/li&gt;
  &lt;/ol&gt;
  &lt;section style=&quot;background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;AwVM&quot;&gt;&lt;strong&gt;Плюсы:&lt;/strong&gt;&lt;/p&gt;
    &lt;ul id=&quot;MRYr&quot;&gt;
      &lt;li id=&quot;h3dC&quot;&gt;Вынос обработки всех команд из ZennoPoster позволил использовать более новый драйвер, и увеличить производительность&lt;/li&gt;
      &lt;li id=&quot;liWg&quot;&gt;Большое количество функций&lt;/li&gt;
      &lt;li id=&quot;We2M&quot;&gt;Встроенный запуск некоторых антидетект браузеров&lt;/li&gt;
      &lt;li id=&quot;2HKG&quot;&gt;Возможность быстрых обновлений и устранения багов, которые практически никогда не затрагивают работу шаблона&lt;/li&gt;
      &lt;li id=&quot;uCra&quot;&gt;Возможность выполнять несколько действий в одном экшене, а так же добавлять дополнительную логику (при желании, весь шаблон можно написать в одном экшене)&lt;/li&gt;
      &lt;li id=&quot;2jC4&quot;&gt;Наличие шаблона с базовыми примерами&lt;/li&gt;
      &lt;li id=&quot;cwKV&quot;&gt;Возможность подключиться к любому антидетект браузеру по протоколу CDP&lt;/li&gt;
      &lt;li id=&quot;7U6H&quot;&gt;Возможность выписать ZennoBox&lt;/li&gt;
      &lt;li id=&quot;KUn9&quot;&gt;Возможность помощи написания кода нейросетями&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;LS4X&quot;&gt;&lt;strong&gt;Минусы:&lt;/strong&gt;&lt;/p&gt;
    &lt;ul id=&quot;MRYr&quot;&gt;
      &lt;li id=&quot;y5Bc&quot;&gt;Требует добавления библиотеки InfiniteClient.dll в ZennoPoster (на самом деле, это занимает буквально 30 секунд, но у новичков часто возникают проблемы с этим)&lt;/li&gt;
      &lt;li id=&quot;YHW7&quot;&gt;Программа написана на .NET 8, и при его отсутсвии на ПК, требует дополнительного скачивания и установки&lt;/li&gt;
      &lt;li id=&quot;sAGB&quot;&gt;Драйвер автоматизации без дополнительных настроек, что может определяться сайтами как автоматизация &lt;/li&gt;
      &lt;li id=&quot;qMzE&quot;&gt;Каждый поток ZennoPoster запускает отдельную коппию InfiniteServer.exe что приводит к значительному потреблению ресурсов ПК&lt;/li&gt;
      &lt;li id=&quot;2oNj&quot;&gt;Достаточно слабый уровень эмуляции действий человека&lt;/li&gt;
      &lt;li id=&quot;ftFq&quot;&gt;Ограниченые настройки&lt;/li&gt;
      &lt;li id=&quot;pJDA&quot;&gt;Сложности при работе с C#&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Uut1&quot;&gt;InfiniteServer.exe является &lt;strong&gt;не плохим&lt;/strong&gt; решением, в котором были решены многие фундаментальные проблемы AntyZenno, основной проблемой является то, что на C# (а InfiniteServer.exe  и InfiniteClien.dll написаны на нем) нет подходящих форков популярных драйверов, которые могли бы достаточно хорошо скрывать признаки автомацизации. &lt;/p&gt;
  &lt;p id=&quot;BqvX&quot;&gt;Так же многих пугает то, что шаблоны приходится писать используя C#, который большиство пользователей не знают, ведь вся суть ZennoPoster заключается в том, что бы создавать проекты без написания кода. Я прекрастно понимаю тех, кого это пугает, но на это были свои причины. C# библиотека сильно упрощает создания самого решения, так как можно очень легко и удобно добавлять новые функции, исправлять баги и многое другое. Так же очередным плюсом такого подхода является то, что если вы допустили где-то ошибку в написании кода, то компилятор сам выдаст вам ошибку, а так же укажет на точное место в шаблоне, где она появилась. &lt;/p&gt;
  &lt;p id=&quot;yiOQ&quot;&gt;Я очень старался сделать API InfiniteClient.dll максимально простым и понятным, даже для тех, кто далек от программирования, потратив 1-2 часа времени, можно достаточно просто изучить все функции. Посмотрев на скриншоты ниже, я думаю достаточно просто разобраться с тем, что делают те или инные функции (к тому же вместе с InfiniteClient.dll поставляется InfiniteClient.xml, которая выводит текстовые подсказки). Хотя изначально все выглядит сложно, на самом деле все достаточно просто и понятно, нужно всего лишь потратить немного времени и разобраться.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;fbsL&quot;&gt;P.S. Можно отправить InfiniteClient.xml любой нейросети, она изучит документацию и сможет вам помогать писать код (смотри пример ниже)&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;figure id=&quot;PvsR&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/30/cd/30cdcd43-6997-4aca-a11a-177f257cda49.png&quot; width=&quot;811&quot; /&gt;
      &lt;figcaption&gt;Пример ввода текста&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;figure id=&quot;miLt&quot; class=&quot;m_column&quot; data-caption-align=&quot;center&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/b6/58/b6582f89-3e06-4609-8d37-dd306bc0582e.png&quot; width=&quot;836&quot; /&gt;
      &lt;figcaption&gt;Стрелки указывают на имя параметра (верхняя стрелка)  и его описание (нижняя стрелка)&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;figure id=&quot;DOVH&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/e9/37/e9373e1a-db69-4235-9c80-9e8c44ed1aa1.png&quot; width=&quot;656&quot; /&gt;
      &lt;figcaption&gt;Пример написания кода через нейросеть DeepSeek&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;WBi0&quot;&gt;3) WraithCore.exe&lt;/h2&gt;
  &lt;figure id=&quot;Q07I&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/18/82/1882dd89-ff9f-4443-89a3-8c0d1968bd6d.png&quot; width=&quot;139&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;r36A&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b5/7e/b57ef07b-4c91-4247-8014-2d8a42b3717f.png&quot; width=&quot;1058&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;2N8y&quot;&gt;Данное решение &lt;strong&gt;ОЧЕНЬ &lt;/strong&gt;схоже с InfiniteServer.exe, но является его полным переосмыслением и дополнением.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(199, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;mXPG&quot;&gt;&lt;strong&gt;Плюсы:&lt;/strong&gt;&lt;/p&gt;
    &lt;ul id=&quot;8lt3&quot;&gt;
      &lt;li id=&quot;6Wdh&quot;&gt;Вынос обработки всех команд из ZennoPoster позволил использовать более новый драйвер, и увеличить производительность&lt;/li&gt;
      &lt;li id=&quot;xi4H&quot;&gt;Количество функций еще больше чем в InfiniteServer.exe&lt;/li&gt;
      &lt;li id=&quot;E2OG&quot;&gt;Возможность быстрых обновлений и устранения багов, которые практически никогда не затрагивают работу шаблона&lt;/li&gt;
      &lt;li id=&quot;5DLA&quot;&gt;Возможность выполнять несколько действий в одном экшене, а так же добавлять дополнительную логику (при желании, весь шаблон можно написать в одном экшене)&lt;/li&gt;
      &lt;li id=&quot;Uctn&quot;&gt;Наличие шаблона с базовыми примерами&lt;/li&gt;
      &lt;li id=&quot;hpFm&quot;&gt;Возможность подключиться к любому антидетект браузеру по протоколу CDP&lt;/li&gt;
      &lt;li id=&quot;jWis&quot;&gt;Максимальная эмуляция действий человека, движения мыши по кривым, умный ввод текста (вместо обычных пауз между вводом символов), микро колебания мыши при наведении, эмуляция нажатия реальных системных клавиш, вместо вставки символов&lt;/li&gt;
      &lt;li id=&quot;1xx2&quot;&gt;В режиме ожидания, мышь делает микро движения и может периодически двигать курсором, что усложняет определить бота на сайте&lt;/li&gt;
      &lt;li id=&quot;9Lwb&quot;&gt;Вместо тяжеловесных процессов, каждый поток ZennoPoster создает свою собственную изолированную сессию&lt;/li&gt;
      &lt;li id=&quot;BODU&quot;&gt;Очень гибкая настройка (глобальное время ожидания элемента, уровень эмуляции, уровень прогрузки страницы и тд.)&lt;/li&gt;
      &lt;li id=&quot;bNwM&quot;&gt;Максимальная маскировка средств автоматизации для сайтов&lt;/li&gt;
      &lt;li id=&quot;0hAH&quot;&gt;Улучшенная производитльность и скорость работы&lt;/li&gt;
      &lt;li id=&quot;Qu4r&quot;&gt;Возможность выписать ZennoBox&lt;/li&gt;
      &lt;li id=&quot;RzhT&quot;&gt;Максимальная совместимость ваших старых проектов на InfiniteServer.exe&lt;/li&gt;
      &lt;li id=&quot;owdJ&quot;&gt;Улучшен и дополнен InfiniteClient.dll (добавлеенны новые перегрузки методов, упрощены старые перегрузки методов, добавлены новые enum)&lt;/li&gt;
      &lt;li id=&quot;DcZM&quot;&gt;Документация на нескольких языках&lt;/li&gt;
      &lt;li id=&quot;FuEg&quot;&gt;Наличие интерактивного локального конструктора для автоматического написания кода (generator.html)&lt;/li&gt;
      &lt;li id=&quot;eued&quot;&gt;Возможность выполнять &lt;strong&gt;ВАШ &lt;/strong&gt;python код прямо из программы и на лету, что дает вам неограниченные возможности при работе&lt;/li&gt;
      &lt;li id=&quot;dFBI&quot;&gt;В отличии от самописного TCP соединения, реализован полноценный REST API&lt;/li&gt;
      &lt;li id=&quot;rO34&quot;&gt;Возможность помощи написания кода нейросетями&lt;/li&gt;
      &lt;li id=&quot;qLzP&quot;&gt;Дорабатывается и улучшается метод работы с мобильными профилями антидетект браузеров&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/section&gt;
  &lt;p id=&quot;J4c3&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;P4w5&quot;&gt;&lt;strong&gt;Минусы:&lt;/strong&gt;&lt;/p&gt;
    &lt;ul id=&quot;BnZ5&quot;&gt;
      &lt;li id=&quot;wyLj&quot;&gt;Требует добавления библиотеки InfiniteClient.dll в ZennoPoster (на самом деле, это занимает буквально 30 секунд, но у новичков часто возникают проблемы с этим)&lt;/li&gt;
      &lt;li id=&quot;PLrj&quot;&gt;Сложности при работе с C#&lt;/li&gt;
      &lt;li id=&quot;DTXw&quot;&gt;Отсутсвие встроенного запуска антидетект браузеров&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/section&gt;
  &lt;p id=&quot;DXUi&quot;&gt;В данном решении соотношение минусов и плюсов в значительной степени отличается (возможно даже что-то не вспомнил), еще немного более подробно расскажу о тонких моментах WraithCore.exe и постараюсь ответить на вопросы, которые у вас могли возникнуть по ходу чтения данной статьи.&lt;/p&gt;
  &lt;p id=&quot;l4wA&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;cXAW&quot; data-align=&quot;center&quot;&gt;1) Почему и в InfiniteServer.exe и в WraithCore.exe присутсвует какая-то InfiniteClient.dll ?&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;jtJ8&quot;&gt;&lt;strong&gt;InfiniteClient.dll&lt;/strong&gt; - это C# библиотека (модуль или проще говоря штука, в которой вы пишите одну строку, а у нее под капотом выполняется много всего сложного, что упрощает вам жизнь, как пользователю) которая добавляется в корневую папку ZennoPoster (чтобы он смог ее увидеть и понимал, что вы от него хотите, когда пишите код). &lt;/p&gt;
  &lt;p id=&quot;8dgP&quot;&gt;Изначально эта библиотека разрабатывалаcь для InfiniteServer.exe что бы реализовать передачу информации (отправку команд в браузер и получение результатов) между ZennoPoster и InfiniteServer.exe, что и позволила вынести всю обработку и выполнения кода из ZennoPoster. &lt;/p&gt;
  &lt;p id=&quot;K8tr&quot;&gt;Зачем нужны были такие сложности? Просто поверьте, из-за огромного количества факторов на мой взгляд это было самое рациональное и правильно решение. И по сколько WraithCore.exe максимально похож на InfiniteServer.exe я решил, что правильно было сохранить (или по крайней мере постараться сохранить) максимальную совместимость проектов написанных на InfiniteServer.exe с новым WraithCore.exe.&lt;/p&gt;
  &lt;p id=&quot;NI1d&quot;&gt;Проще говоря, если бы я назвал библиотеку новым именем, то глобально ничего не изменилось бы, просто в каждом кубике старых проектов пришлось бы изменять названия библиотеки на другое, что привело бы к бессмысленной трате вашего времени&lt;/p&gt;
  &lt;p id=&quot;abvm&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;JVZZ&quot; data-align=&quot;center&quot;&gt;2) Почему в WraithCore.exe нет встроенного запуска браузеров?&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;afvr&quot;&gt;Да, наверное многие заметили, что в AntyZenno и в InfiniteServer.exe были реализованы функции запуска некоторых браузеров &amp;quot;из коробки&amp;quot; (AdsPower, Dolphin, OctoBrowser, IxBrowser). Не спорю, в какой-то степени это было удобно, но на это были свои паричины, основной же является следующее:&lt;/p&gt;
  &lt;blockquote id=&quot;4xAs&quot;&gt;Я решил изолировать новое решение и не быть завязанным на API и документациях сторонних сервисов (в данном случае антидетект браузеров). У всех браузеров свой API, свои задержки, баги, артефакты при запуске и закрытии браузеров, поэтому мною было принято решение, переложить эту ответственность на Вас, как на разработчиков. WraithCore.exe является сугубо посредником в &lt;strong&gt;управлении&lt;/strong&gt; между БРАУЗЕРОМ и ZennoPoster (хочу отметить что в тестовом шаблоне я все же указал способы запуска некоторых браузеров с помощью POST/GET запросов)&lt;/blockquote&gt;
  &lt;p id=&quot;wGy7&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;jyCQ&quot; data-align=&quot;center&quot;&gt;3) Если я не разбираюсь в коде, могу ли я как-то сам писать проекты не используя постоянно нейросети?&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;hwH5&quot;&gt;Да, для этого был создан локальный конструктор &lt;strong&gt;generator.html&lt;/strong&gt;, который поможет вам быстро и просто писать код&lt;/p&gt;
  &lt;figure id=&quot;mKKO&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/bc/38/bc387415-a7b5-4e7e-b183-c6f3cee2bfbf.png&quot; width=&quot;1157&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;gpaQ&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h3 id=&quot;pCpF&quot; data-align=&quot;center&quot;&gt;4) Почему не сделать что-то боле удобное чем библиотека, писать кодом не удобно&lt;/h3&gt;
  &lt;/section&gt;
  &lt;p id=&quot;Vxcd&quot;&gt;Я перепробовал много различных вариантов, и в нашей связке с ZennoPoster данное решение мне кажется наиболее выгодным и правильным. Вот основные мои аргументы:&lt;/p&gt;
  &lt;ul id=&quot;KH2L&quot;&gt;
    &lt;li id=&quot;XTLD&quot;&gt;В ZennoPoster уже встроен экшен C#, что позволяет просто и быстро создавать новые действия&lt;/li&gt;
    &lt;li id=&quot;jwR0&quot;&gt;Быстрая прогрузка интерфейса (экшена C#)&lt;/li&gt;
    &lt;li id=&quot;AHpL&quot;&gt;Очень удобно мне, как разработчику решения вносить новые идеи, фиксить баги и тд.&lt;/li&gt;
    &lt;li id=&quot;jijW&quot;&gt;Очень удобно обновляться до новых версий, вам достаточно просто запустить новый WraithCore.exe и закинуть InfiniteClient.dll в корневую папку ZennoPoster, что занимает меньше минуты времени&lt;/li&gt;
    &lt;li id=&quot;UfBQ&quot;&gt;Если все же получилось так, что был обновлен какой-то метод, функция, свойство и тд, то вам не нужно будет бегать по проекту и искать эти места, ZennoPoster сам покажет вам эти кубики на этапе компиляции (но в целом я стараюсь не менять ничего в основном API, в ином случае просто пытаюсь добавить перегрузку метода или продублировать что-то в отдельном свойстве)&lt;/li&gt;
    &lt;li id=&quot;4Zhy&quot;&gt;Возможность комбинации действий. В самом деле, это беезумно удобно, если вы хотябы немного умеете програмировать или общатся с нейросетями, то можете сами убедится в том, что создание проетов с помощью кода, очень сильно упрощает работу, в частности обслуживание шаблонов. Вместо создания 10, 20, 30, ... кубиков бессконечных циклов, проверок, создания временных переменных и многое другое, мы можете сделать огромную часть локиги всего лишь в ОДНОМ кубике и не нужно будет бесконечно скролить шаблон, в поиске нужного кубика (пример будет чуть ниже) &lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;1kLg&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/96/29/96294e75-a9d5-4ece-a40e-731f06615c13.png&quot; width=&quot;1291&quot; /&gt;
    &lt;figcaption&gt;В одном кубике прописаны несколько условий, и исходя из этого, шаблон знает, что ему делать дальше, что экономит огромное количеество времени и упрощает отладку, а так же делает ваш шаблон проще и читабельнее&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;oRgZ&quot; data-align=&quot;center&quot;&gt;ВАЖНО!!!&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;C5mp&quot;&gt;Не скачивайте наши решения на сторонних ресурсах, не скачивайте версии которые Вам присылают в личные сообщения и в чатах. Не покупайте ни у кого &amp;quot;лицензию&amp;quot;. Все вопросы по покупке, продлению лицензий и т.д. &lt;a href=&quot;https://t.me/Midaw007&quot; target=&quot;_blank&quot;&gt;@Midaw007&lt;/a&gt;&lt;/p&gt;

</content></entry><entry><id>midaw007:wraith_core_install_help</id><link rel="alternate" type="text/html" href="https://teletype.in/@midaw007/wraith_core_install_help?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=midaw007"></link><title>WraithCore.exe</title><published>2026-04-13T18:30:08.850Z</published><updated>2026-04-13T18:30:27.193Z</updated><summary type="html">&lt;img src=&quot;https://img2.teletype.in/files/57/f6/57f66020-bd22-4882-ad38-7931494e7f5a.png&quot;&gt;WraithCore.exe – это приложение, созданное для автоматизации &quot;антидетект браузеров&quot; с помощью программы ZennoPoster(взаимодействие происходит по принципу клиент-сервер, где клиент это Zennoposer, который отправляет команду и ждет ответ, а WraithCore.exe - сервер, который ждет команду, выполняет ее и  отправляет ответ обратно клиенту, то есть в ZennoPoster)</summary><content type="html">
  &lt;section&gt;
    &lt;h2 id=&quot;r9Qj&quot; data-align=&quot;center&quot;&gt;Что такое WraithCore.exe?&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;mnaZ&quot;&gt;&lt;strong&gt;WraithCore.exe&lt;/strong&gt; – это приложение, созданное для автоматизации &amp;quot;антидетект браузеров&amp;quot; с помощью программы ZennoPoster(взаимодействие происходит по принципу клиент-сервер, где клиент это Zennoposer, который отправляет команду и ждет ответ, а WraithCore.exe - сервер, который ждет команду, выполняет ее и  отправляет ответ обратно клиенту, то есть в ZennoPoster)&lt;/p&gt;
  &lt;section&gt;
    &lt;h2 id=&quot;FY38&quot; data-align=&quot;center&quot;&gt;Что мне нужно чтобы начать работу?&lt;/h2&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;gQTq&quot;&gt;&lt;strong&gt;1) Убедиться в том, что оно вам действительно надо... &lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;RkRz&quot;&gt;Данное решение рассчитано для людей имеющих базовые представление об автоматизации и о том, что такое ZennoPoster и как с ним работать. WraithCore.exe не является панацеей для всех ваших задач и проблем, и это не дает вам гарантию того, что вы сразу же побежите регистрировать гугл аккаунты тысячами или ваши аккаунты никогда не будут блокировать.&lt;/p&gt;
  &lt;p id=&quot;hfxE&quot;&gt;Всё взаимодействие с браузером происходит исключительно с помощью C# кода, хоть практически все нужные вам действия уже прописаны в тестовом шаблоне, а так же имеются визуальные генераторы (generator.html) вам все равно придется чему-то &lt;strong&gt;УЧИТЬСЯ&lt;/strong&gt;, как минимум вам нужно понимать отличие &lt;u&gt;string&lt;/u&gt; от &lt;u&gt;int (строки от числа),&lt;/u&gt; как работать с XPath либо CSS, понимать что такое API и уметь разбираться в документации (В отличиии от InfiniteServer в WraithCore был удален метод запуска браузера из коробки).&lt;/p&gt;
  &lt;p id=&quot;fdyA&quot;&gt;И да, &lt;u&gt;мы не заявляем&lt;/u&gt;, что наше решение является САМЫМ лучшим на рынке, аналогов которому нет и так далее... У нас тоже есть баги, есть к чему придраться, есть много моментов которые лично меня как разработчика не устраивают, любую критику, жалобы и предложения с удовольствием примем и постараемся что-то улучшить или исправить. Так же если вам не хватает какой либо функции, или вы считаете что она необходима, так же с радостью выслушаем ваши предложения.&lt;/p&gt;
  &lt;p id=&quot;ia31&quot;&gt;Если вы готовы принять написанную информацию выше, то переходите к пункту номер 2&lt;/p&gt;
  &lt;h2 id=&quot;tbM9&quot;&gt;&lt;strong&gt;2) Оплатить или активировать бесплатную версию&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;HYUK&quot;&gt;Цена WraithCore.exe 30$/месяц, так же вы можете использовать бесплатную(trial) версию &lt;u&gt;на 7 дней&lt;/u&gt; (без ограничения функционала)&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;ZP3G&quot; data-align=&quot;center&quot;&gt;Лицензия привязывается к вашему zenno_id личного кабинета, поэтому ограничения по к-ву устройств, привяски по IP и так далее нет&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;PeyJ&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;Для выписки лицензии обращаться: &lt;a href=&quot;https://t.me/Midaw007&quot; target=&quot;_blank&quot;&gt;Midaw007&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;qcOC&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;ОБЯЗАТЕЛЬНО СВЕРЯЙТЕ КОНТАКТЫ ПРИ ОПЛАТЕ&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;JC3F&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;TJNW&quot;&gt;Для активации лицензии нужен ваш &lt;strong&gt;zenno id&lt;/strong&gt;, что бы его получить есть 2 варианта:&lt;/p&gt;
  &lt;p id=&quot;1HHA&quot;&gt;&lt;strong&gt;1. Получить через ProjectMaker&lt;/strong&gt;&lt;br /&gt;Для этого в ProjectMaker нужно в окне переменных найти вкладку &amp;quot;Окружение&amp;quot;, в этом окне взять значение переменной &amp;quot;Environment.CurrentUser&amp;quot; это и есть ваш zenno id&lt;/p&gt;
  &lt;figure id=&quot;GQk6&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f3/12/f312b6f4-1d2b-4e43-abcb-e79ac7d8a9ac.png&quot; width=&quot;618&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;n5Sw&quot;&gt;&lt;strong&gt;2 .Получить через личный кабинет ZennoLab&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;0MOl&quot;&gt;Личный кабинет =&amp;gt; Клик по иконке профиля =&amp;gt; Настройки профиля =&amp;gt; Скопировать ID&lt;/p&gt;
  &lt;figure id=&quot;K4Kv&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e0/87/e087252a-d70e-4dad-98ad-ca5698641fdf.png&quot; width=&quot;1214&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;esZe&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/81/6f/816fe6c9-9777-49f4-8e59-124362193f89.png&quot; width=&quot;594&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;GVmE&quot;&gt;&lt;/h2&gt;
  &lt;h2 id=&quot;NAP4&quot;&gt;3) Скачайте архив с проектом и разархивируйте&lt;/h2&gt;
  &lt;h3 id=&quot;0U7b&quot;&gt;Архив можно скачать в нашем телеграмм канале &lt;a href=&quot;https://t.me/infinite_script/129&quot; target=&quot;_blank&quot;&gt;СКАЧАТЬ&lt;/a&gt;&lt;/h3&gt;
  &lt;figure id=&quot;6FjX&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/90/d9/90d9a73a-570f-4dae-89d1-2c2b8828b3e2.png&quot; width=&quot;301&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;X2Lb&quot;&gt;В архиве вы найдете несколько директорий и файлов:&lt;/p&gt;
  &lt;ul id=&quot;tDkC&quot;&gt;
    &lt;li id=&quot;UvAI&quot;&gt;&lt;strong&gt;Директория InfiniteSnippets&lt;/strong&gt; – C# снипеты, нужны для быстрой вставки готового кода в проекты (смотри фото ниже) &lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;xk9I&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e3/86/e386a104-76a1-4cc0-98ec-820fd6052e9d.png&quot; width=&quot;1306&quot; /&gt;
  &lt;/figure&gt;
  &lt;ul id=&quot;Kmj3&quot;&gt;
    &lt;li id=&quot;EuiL&quot;&gt;&lt;strong&gt;Директория locales&lt;/strong&gt; - в ней хранятся файлы локализации (en, ru, zh), так же в них хранятся:&lt;br /&gt;1) Библиотека InfiniteClient.dll (именно она отправляет команды из ZennoPoster в WraithCore.exe)&lt;br /&gt;2) InfiniteClient.xml, это документация для редактора кода (в нашем случае для ZennoPoster) он показыват нам подсказки и описание кода (смотри фото ниже)&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;HSwp&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/6b/9f/6b9f6ed8-a354-4c4e-8a41-d2ad7f901105.png&quot; width=&quot;995&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;676p&quot;&gt;&lt;/p&gt;
  &lt;ul id=&quot;ILHr&quot;&gt;
    &lt;li id=&quot;bFMV&quot;&gt;&lt;strong&gt;Директория WraithCore &lt;/strong&gt;- в ней хранятся:&lt;br /&gt;1) Директория _internal - в ней описана работа WraithCore.exe&lt;br /&gt;2) WraithCore.exe - сам исполняемый файл, нашей програмы &lt;/li&gt;
    &lt;li id=&quot;3huS&quot;&gt;&lt;strong&gt;Файл WraithCoreTEST.zp &lt;/strong&gt;- тестовый шаблон, с примерами кода&lt;/li&gt;
  &lt;/ul&gt;
  &lt;figure id=&quot;uirQ&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e4/05/e405ea67-ce83-46f4-8d5e-a702d769c5e9.png&quot; width=&quot;796&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;zb8J&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;PEV4&quot;&gt;4) Добавить необходимые компоненты в рабочую папку ZennoPoster&lt;/h2&gt;
  &lt;h3 id=&quot;dcA2&quot;&gt;1. Откройте папку в которую вы установили ZennoPoster&lt;/h3&gt;
  &lt;figure id=&quot;zNNa&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/ca/90/ca900476-65db-4a0f-ad2e-8db3a82f0b14.png&quot; width=&quot;506&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;nXcV&quot;&gt;2. Перейдите в директорию ExternalAssemblies&lt;/h3&gt;
  &lt;figure id=&quot;RPnE&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/12/94/12943f4e-0399-4876-a613-6bb8a410e8da.png&quot; width=&quot;534&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;2Rit&quot;&gt;3. Перейдите в директорию ExternalAssemblies&lt;/h3&gt;
  &lt;p id=&quot;4GNj&quot;&gt;После перехода в директорию ExternalAssemblies, переместите в нее 2 файла (InfiniteClient.dll и InfiniteClient.xml)&lt;/p&gt;
  &lt;figure id=&quot;az33&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19eec96-62aa-496c-b28c-9d76c703e7b1.png&quot; width=&quot;459&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;KHo0&quot;&gt;5) Почти все готово!!!&lt;/h2&gt;
  &lt;p id=&quot;ycta&quot;&gt;Если вы все сделали правильно, то теперь вам нужно открыть тестовый шаблон WraithCoreTEST.zp, и выполнить первый кубик(экшен), в котором будет создан экземпляр нашего клиента, который в будущем подключится к WraithCore&lt;/p&gt;
  &lt;figure id=&quot;tr8t&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b4/b5/b4b50b27-b401-4b92-a52d-6294e9640cf5.png&quot; width=&quot;1068&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;S9zF&quot;&gt;&lt;strong&gt;Если у вас не посыпались ошибки, то настройка выполнена правильно и вы можете начинать писать свои проекты&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;p id=&quot;zOzA&quot;&gt;Далее для написания будущих шаблонов дабы не морочиться с добавлением ссылок из GAC и не прописывать using и общий код, рекомендую просто копировать проект WraithCoreTEST.zp, переименовать его, удалить лишние кубики и продолжить работу&lt;/p&gt;
  &lt;/section&gt;
  &lt;section&gt;
    &lt;h2 id=&quot;xstX&quot; data-align=&quot;center&quot;&gt;Ниже в этой статье будет информация для тех, кто немного хочет вникнуть в то, как пользоваться данным решением, к прочтению рекомендовано, но не обязательно&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;6UNw&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;8JdI&quot;&gt;&lt;strong&gt;1) Запускаем WraithCore.exe (двойным кликом мыши по исполняемому файлу)&lt;/strong&gt;&lt;/h3&gt;
  &lt;figure id=&quot;dtn7&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1c/fc/1cfcb958-1f39-43c3-ac7e-c1124a77e942.png&quot; width=&quot;942&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;lT9a&quot;&gt;&lt;strong&gt;2) Создаем экземпляр класса Client и сохраняем его &amp;quot;в память&amp;quot; зенопостера.&lt;br /&gt;&lt;/strong&gt;Это делается для того, что бы мы могли обращаться к этому объекту в других кубиках.&lt;/p&gt;
  &lt;figure id=&quot;J9na&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e4/a7/e4a76fa0-581d-4432-aeff-171d33634695.png&quot; width=&quot;586&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;RC52&quot;&gt;Далее в каждом последующем кубике для работы с нашим объектом его нужно &amp;quot;доставать из памяти&amp;quot; с помощью строки:&lt;/p&gt;
  &lt;section&gt;
    &lt;pre id=&quot;Rswc&quot; data-lang=&quot;clike&quot;&gt;InfiniteClient.Client client = project.Context[&amp;quot;client&amp;quot;] as InfiniteClient.Client;&lt;/pre&gt;
  &lt;/section&gt;
  &lt;h3 id=&quot;TdNe&quot;&gt;&lt;strong&gt;3) Создаем новую сессию.&lt;/strong&gt; &lt;/h3&gt;
  &lt;p id=&quot;H8Gx&quot;&gt;В отличиие от InfiniteServer(более старого решения, в котором мы выполняли &lt;s&gt;OpenConnect ()&lt;/s&gt;, то есть открывали сессию, в данном решении мы используем метод CreateSession(), который откроет под в фоновом режиме легковесную сессию, а не запустит еще один тяжелый exe файл).&lt;/p&gt;
  &lt;figure id=&quot;Ix3O&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e6/c3/e6c368fe-95cc-4e6d-8372-9dacac66e750.png&quot; width=&quot;1147&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;SA0O&quot;&gt;4) Запуск браузера.&lt;/h3&gt;
  &lt;p id=&quot;wpEg&quot;&gt;&lt;br /&gt;Запуск браузера выполняется с помощью post/get запросов из документации нужного вам браузера, в тестовом шаблоне уже встроены примеры запуска неекоторых браузеров (&lt;strong&gt;ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ ЛЮБОЙ ДРУГОЙ БРАУЗЕР&lt;/strong&gt;):&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;oFrX&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1d/33/1d339652-6814-4798-ba7b-4a6909427ff0.png&quot; width=&quot;978&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;wpEg&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;Как найти ID нужного антика можно посмотреть &lt;a href=&quot;https://telegra.ph/Poisk-ID-v-antidetekt-brauzerah-11-17&quot; target=&quot;_blank&quot;&gt;ТУТ&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;h3 id=&quot;KM9j&quot;&gt;5) Подключение к браузеру&lt;/h3&gt;
  &lt;p id=&quot;VxTp&quot;&gt;После запуска браузера (с помощью post или get запроса) вам должен прийти ответ, обычно он содержит строку для подключения по CDP&lt;br /&gt;Пример от AdsPower:&lt;/p&gt;
  &lt;p id=&quot;poKb&quot;&gt;&lt;code&gt;{&lt;br /&gt;&amp;quot;code&amp;quot;:0,&amp;quot;msg&amp;quot;:&amp;quot;success&amp;quot;,&lt;br /&gt;&amp;quot;data&amp;quot;:{&amp;quot;ws&amp;quot;:{&amp;quot;puppeteer&amp;quot;:&amp;quot;ws://127.0.0.1:50876/devtools/browser/cd0f3fea-1176-41ef-8dbc-a6e1a99a1a78&amp;quot;,&amp;quot;selenium&amp;quot;:&amp;quot;127.0.0.1:50876&amp;quot;},&amp;quot;debug_port&amp;quot;:&amp;quot;50876&amp;quot;,&amp;quot;webdriver&amp;quot;:&amp;quot;C:\\Users\\user\\AppData\\Roaming\\adspower_global\\cwd_global\\chrome_144\\chromedriver.exe&amp;quot;}&lt;br /&gt;}&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;vhZJ&quot;&gt;В ответе мы видим &lt;code&gt;ws &lt;/code&gt;и &lt;code&gt;debug_port&lt;/code&gt; &lt;/p&gt;
  &lt;p id=&quot;PLzd&quot;&gt;Для подключения используем&lt;code&gt;ConnectToBrowser()&lt;/code&gt;:&lt;br /&gt;1) Вариант первый:&lt;/p&gt;
  &lt;p id=&quot;ecTY&quot;&gt;&lt;code&gt;client.ConnectToBrowser(&amp;quot;ws://localhost:9222/devtools/page/DAB7FB6187B554E10B0BD18821265734&amp;quot;);&lt;br /&gt;&lt;/code&gt;2) Второй вариант&lt;br /&gt;&lt;code&gt;client.ConnectToBrowser(&amp;quot;&lt;a href=&quot;http://localhost:9222&quot; target=&quot;_blank&quot;&gt;http://localhost:9222&lt;/a&gt;&amp;quot;);&lt;/code&gt;&lt;/p&gt;
  &lt;h3 id=&quot;S6Wi&quot;&gt;&lt;strong&gt;6) Активируем вкладку для работы.&lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;Uemd&quot;&gt;Было сделано много попыток автоматической активации вкладки, но по различным причинам я отказался от данной реализации и переложил это действие на пользователя, так как из-за скорости загрузки, вида браузера, открытых до этого вкладок и других причин, могут быть непредсказуемые результаты, поэтому я составил код, который просто закрывает все вкадки, кромее одной, а в конце активирует ее &lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;JvxV&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/d8/18/d818cbe3-933c-4065-8556-2ea2b6e59471.png&quot; width=&quot;1017&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;kxVN&quot;&gt;&lt;strong&gt;7) Пишем свой проект дальше. &lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;Vd1M&quot;&gt;На этом этапе, стандартная настройка и запуск браузера выполнены, далее вы просто можете взять уже написанные мною кубики и заменить в них данные на свои или же написать свой код&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;eB5B&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/93/43/93439f43-2f25-456c-a27d-d3db587155da.png&quot; width=&quot;827&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;7PQy&quot;&gt;БЛОК 1: Дополнительные настройки.&lt;/p&gt;
  &lt;p id=&quot;4iPf&quot;&gt;БЛОК 2: Готовые кубики с кликами, вводом текста, парсингом, работай с вкладками, загрузкой и скачиванием файлов и так далее.&lt;/p&gt;
  &lt;p id=&quot;fl00&quot;&gt;В будущем к-во действий планируется расширить&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Tdki&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;Так же вы можете использовать generator.html&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;7Sgs&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/2d/dd/2ddd7b98-e7a0-437c-8595-f70183193cdf.png&quot; width=&quot;1169&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;WKUr&quot;&gt;&lt;strong&gt;5) Закрываем браузер и соединение. &lt;/strong&gt;&lt;/h3&gt;
  &lt;p id=&quot;ekeu&quot;&gt;Дабы экономить ресурсы вашего устройства после отработки скрипта или же при выходе по GoodEnd или BadEnd рекомендую выполнять закрытие браузера и закрытие сессии, что бы на фоне не висела лишняя нагрузка&lt;/p&gt;
  &lt;figure id=&quot;qYD3&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1a/5b/1a5b9ce9-52b6-4bb8-bd6d-b01d5802a990.png&quot; width=&quot;1140&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;qzhC&quot;&gt;&lt;strong&gt;ВАЖНО!!!&lt;/strong&gt; Данное решение &lt;strong&gt;не работает с внутренним браузером ZennoPoster&lt;/strong&gt; (но при необходимости можно работать одновременно и со встроенным браузером и с антидетект браузером), действия выполняемые кубиками (экшенами) такие как: &lt;u&gt;клик, ввод текста, работа с вкладками, переход по ссылкам, парсинг и т.д.&lt;/u&gt; не будут работать в антидетект браузере (см. рис. 1)&lt;/p&gt;
    &lt;figure id=&quot;x8BG&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/32/e1/32e1b7dc-64a0-4e9c-b906-9241efb8cbe7.png&quot; width=&quot;583&quot; /&gt;
      &lt;figcaption&gt;&lt;strong&gt;рис. 1&lt;/strong&gt;&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;p id=&quot;e9Ek&quot;&gt;Но это не запрещает вам использовать такие кубики как: обработка текста, работа со списками и таблицами, логика, http запросы, работа с директориями, работа с базами данных и так далее&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;figure id=&quot;H9RF&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/2e/cf/2ecf155f-5534-4924-ac42-bd2a4e8f3b99.png&quot; width=&quot;551&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;

</content></entry><entry><id>midaw007:wraitcore_migration</id><link rel="alternate" type="text/html" href="https://teletype.in/@midaw007/wraitcore_migration?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=midaw007"></link><title>Конспект-инструкция по переходу с InfiniteServer на WraithCore (ZennoPoster)</title><published>2026-03-25T16:20:13.114Z</published><updated>2026-04-14T04:33:23.643Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/52/a9/52a98f1f-4f24-4f0b-9587-a4d2f29eb828.png"></media:thumbnail><summary type="html">&lt;img src=&quot;https://img4.teletype.in/files/b8/b6/b8b6649d-6413-4abe-a9ea-7c1f93995480.jpeg&quot;&gt;Данное руководство предназначено для пользователей (разработчиков шаблонов ZennoPoster) для плавного перехода со старого InfiniteServer (и его клиента) на новую, более производительную архитектуру WraithCore.</summary><content type="html">
  &lt;figure id=&quot;HlMp&quot; class=&quot;m_column&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9a/e8/9ae85ca6-ebc8-4e70-93f6-6a65cad00b01.png&quot; width=&quot;1028&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;d4eH&quot;&gt;Данное руководство предназначено для пользователей (разработчиков шаблонов ZennoPoster) для плавного перехода со старого &lt;code&gt;InfiniteServer&lt;/code&gt; (и его клиента) на новую, более производительную архитектуру &lt;code&gt;WraithCore&lt;/code&gt;.&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(263, 48%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;6udT&quot;&gt;Несмотря на то, что ядро полностью изменилось на &lt;strong&gt;WraithCore&lt;/strong&gt;, сама библиотека (DLL) для C# по-прежнему называется &lt;strong&gt;&lt;code&gt;InfiniteClient.dll&lt;/code&gt;&lt;/strong&gt;. Это сделано специально для сохранения максимальной совместимости с вашими старыми проектами — вам не придется переписывать &lt;code&gt;using&lt;/code&gt; и менять ссылки на библиотеку в ZennoPoster.&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;zZr1&quot;&gt;Основное преимущество новой версии: больше не нужно запускать тяжелый I&lt;code&gt;InfinitteServer.exe&lt;/code&gt; сервер на каждый поток! Теперь работает один общий сервер &lt;code&gt;WraithCore.exe&lt;/code&gt;, а потоки подключаются к нему, создавая легковесные «Сессии» через быстрое HTTP-согласование. Это кардинально улучшает скорость работы проекта и стабильность!&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;user-content--почему-мы-перешли-на-wraithcore&quot;&gt;🌟 Почему мы перешли на WraithCore?&lt;/h2&gt;
  &lt;p id=&quot;XjyA&quot;&gt;Переход на новую архитектуру был продиктован необходимостью решить фундаментальные проблемы старого &lt;code&gt;InfiniteServer&lt;/code&gt; и заложить мощный фундамент для развития. Вот главные причины:&lt;/p&gt;
  &lt;ol id=&quot;kI1b&quot;&gt;
    &lt;li id=&quot;kTeP&quot;&gt;&lt;strong&gt;Рост производительности и экономия ресурсов&lt;/strong&gt;. Старый подход требовал запуска отдельного тяжеловесного процесса &lt;code&gt;InfiniteServer.exe&lt;/code&gt; на каждый рабочий поток в ZennoPoster. Это приводило к огромным накладным расходам CPU и оперативной памяти. Теперь сервер запускается всего один раз, а потоки просто создают внутри него легковесные &amp;quot;сессии&amp;quot;, потребляя в разы меньше ресурсов.&lt;/li&gt;
    &lt;li id=&quot;JCo1&quot;&gt;&lt;strong&gt;Абсолютная стабильность (&amp;quot;Никаких зависаний&amp;quot;)&lt;/strong&gt;. Благодаря отказу от самописного TCP-взаимодействия сокетами и переходу на надежное современное REST API (HTTP), проблемы с &amp;quot;зависанием кубиков&amp;quot;, потери пакетов и обрывы связи остались в прошлом. Архитектура надежно изолирована.&lt;/li&gt;
    &lt;li id=&quot;NTuC&quot;&gt;&lt;strong&gt;Скорость работы и парсинга&lt;/strong&gt;. Новое ядро &lt;code&gt;WraithCore&lt;/code&gt; кардинально оптимизировано для сверхбыстрой обработки DOM-дерева и маршрутизации команд внутри браузера. Парсинг огромных страниц и сложных селекторов отрабатывает моментально.&lt;/li&gt;
    &lt;li id=&quot;5JRR&quot;&gt;&lt;strong&gt;Повышенная безопасность и Anti-Detect&lt;/strong&gt;. Метод автоматического запуска браузера из коробки (LaunchBrowser) был намеренно удален. Это не только обезопашивает &lt;code&gt;WraithCore&lt;/code&gt; от изменений в документации браузеров, но и дает вам полную свободу: вы сами запускаете браузер с любыми нужными аргументами, портами и флагами. &lt;code&gt;WraithCore&lt;/code&gt; выступает как идеальный драйвер, подключаясь к вашему процессу по CDP порту, что критически снижает риск детектирования антифрод-системами.&lt;/li&gt;
    &lt;li id=&quot;HxRO&quot;&gt;&lt;strong&gt;Современные стандарты кода&lt;/strong&gt;. Отказ от &amp;quot;строковых&amp;quot; команд в пользу строгой типизации &lt;code&gt;Enums (ActionMouse, ParseAttribute, KeyboardAction и т.д.&lt;/code&gt;) сводит к нулю глупые ошибки и опечатки в коде на этапе написания шаблонов. &lt;u&gt;Совместимость со &amp;quot;строковыми&amp;quot; командами сохранена&lt;/u&gt;&lt;/li&gt;
    &lt;li id=&quot;kCg4&quot;&gt;&lt;strong&gt;Отказ от плагинов в пользу гибкой C# библиотеки&lt;/strong&gt;. C# библиотека предоставляет невероятную гибкость и простоту обновлений: вся сложная логика меняется исключительно &amp;quot;под капотом&amp;quot; в самом &lt;code&gt;WraithCore.exe&lt;/code&gt;, поэтому вам не нужно постоянно переустанавливать плагины кубиками. При этом для пользователей, не владеющих программированием, API составлен интуитивно понятно и подробно. Более того, в вашем распоряжении удобный локальный &lt;strong&gt;&lt;code&gt;generator.html&lt;/code&gt;&lt;/strong&gt;, который позволяет генерировать готовый C#-код в пару кликов, а также &lt;strong&gt;комплексный тестовый шаблон&lt;/strong&gt; со всеми основными функциями и сниппетами!&lt;/li&gt;
  &lt;/ol&gt;
  &lt;h2 id=&quot;user-content-️-краткая-суть-миграции-главные-отличия&quot;&gt;⚡️ Краткая суть миграции (Главные отличия)&lt;/h2&gt;
  &lt;p id=&quot;QDdP&quot;&gt;Если у вас нет времени читать всё руководство, запомните два основных архитектурных изменения:&lt;/p&gt;
  &lt;ol id=&quot;qGDf&quot;&gt;
    &lt;li id=&quot;OcEH&quot;&gt;&lt;strong&gt;Замена OpenConnect() на CreateSession()&lt;/strong&gt;: Мы больше не &amp;quot;открываем соединение&amp;quot; с новым процессом сервера, а &amp;quot;создаем сессию&amp;quot; внутри уже запущенного общего сервера &lt;code&gt;WraithCore&lt;/code&gt;.&lt;/li&gt;
    &lt;li id=&quot;moGG&quot;&gt;&lt;strong&gt;Удаление запуска браузера &amp;quot;из коробки&amp;quot;&lt;/strong&gt;: Раньше библиотека сама дергала API браузера, теперь вы запускаете его самостоятельно (любым удобным способом) и просто подключаете библиотеку к нему через ConnectToBrowser.&lt;/li&gt;
  &lt;/ol&gt;
  &lt;p id=&quot;efc6&quot;&gt;Остальной API остался максимально узнаваемым и совместимым.&lt;/p&gt;
  &lt;h2 id=&quot;user-content-1-запуск-сервера-и-сессии-было--стало&quot;&gt;1. Запуск сервера и сессии: Было / Стало&lt;/h2&gt;
  &lt;h3 id=&quot;user-content-было-старый-подход&quot;&gt;Было (Старый подход)&lt;/h3&gt;
  &lt;p id=&quot;4HGA&quot;&gt;Раньше сервер запускался под каждый поток индивидуально. В кубике C# вы писали:&lt;/p&gt;
  &lt;pre id=&quot;inck&quot; data-lang=&quot;clike&quot;&gt;InfiniteClient.Client client = project.Context[&amp;quot;client&amp;quot;] as InfiniteClient.Client;
client.OpenConnect(project, pathToExe);&lt;/pre&gt;
  &lt;p id=&quot;Oisq&quot;&gt;В конце работы вы обязательно вызывали &lt;code&gt;client.CloseConnect();&lt;/code&gt;, чтобы убить этот отдельный серверный процесс.&lt;/p&gt;
  &lt;h3 id=&quot;user-content-стало-новый-подход-wraithcore&quot;&gt;Стало (Новый подход WraithCore)&lt;/h3&gt;
  &lt;p id=&quot;zpAZ&quot;&gt;Сервер &lt;code&gt;WraithCore.exe&lt;/code&gt; запускается &lt;strong&gt;ОДИН РАЗ&lt;/strong&gt; руками или батником перед стартом шаблонов.&lt;/p&gt;
  &lt;p id=&quot;7mkW&quot;&gt;В кубике вашего рабочего шаблона подключение выглядит так:&lt;/p&gt;
  &lt;pre id=&quot;YHZn&quot; data-lang=&quot;clike&quot;&gt;// 1. Создаем сессию на сервере (создается новый браузер).
// &amp;quot;MyBotLogger&amp;quot; — это имя вашего потока/бота для удобного вывода логов в консоль WraithCore.
InfiniteClient.Client client = project.Context[&amp;quot;client&amp;quot;] as InfiniteClient.Client;
client.CreateSession(project, &amp;quot;127.0.0.1:8000&amp;quot;, &amp;quot;MyBotLogger&amp;quot;);// 3. Подключаемся к браузеру по WebSocket (пример)client.ConnectToBrowser(&amp;quot;ws://127.0.0.1:9222/devtools/browser/...&amp;quot;);&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;NQf6&quot;&gt;&lt;strong&gt;WARNING&lt;/strong&gt;&lt;/p&gt;
    &lt;p id=&quot;vSSt&quot;&gt;Для безопасности и стабильности метод &lt;strong&gt;LaunchBrowser был удален&lt;/strong&gt;. Теперь браузер нужно запускать самостоятельно (через кубики ZennoPoster или &lt;code&gt;Process.Start&lt;/code&gt;), передавая ему все необходимые параметры (например, &lt;code&gt;--proxy-server&lt;/code&gt;, &lt;code&gt;--user-agent, --headless и др&lt;/code&gt;). Это позволяет вам гибко настраивать отпечаток. Готовые примеры запуска и подключения лежат в тестовом шаблоне!&lt;/p&gt;
  &lt;/section&gt;
  &lt;pre id=&quot;ig7R&quot; data-lang=&quot;clike&quot;&gt;client.Session.Close();
// Альтернативно можно использовать: client.Close();
// Для обратной совместимости старый метод тоже поддерживается: client.CloseConnect();&lt;/pre&gt;
  &lt;h2 id=&quot;user-content-2-управление-сессиями-и-эмуляцией&quot;&gt;2. Управление сессиями и эмуляцией&lt;/h2&gt;
  &lt;p id=&quot;GiKA&quot;&gt;Новая архитектура строится вокруг сессий. Вы можете:&lt;/p&gt;
  &lt;ul id=&quot;wAFz&quot;&gt;
    &lt;li id=&quot;hVR6&quot;&gt;&lt;code&gt;client.CreateSession(project, url)&lt;/code&gt; — создать новую сессию.&lt;/li&gt;
    &lt;li id=&quot;8xrc&quot;&gt;&lt;code&gt;client.AttachToSession(&amp;quot;uuid&amp;quot;)&lt;/code&gt; — подключиться к уже запущенной сессии.&lt;/li&gt;
    &lt;li id=&quot;yte3&quot;&gt;&lt;code&gt;var list = client.Session.GetList()&lt;/code&gt; — получить список активных сессий &lt;/li&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;FFs2&quot;&gt;Пример переподключения:&lt;/p&gt;
  &lt;pre id=&quot;GjjD&quot; data-lang=&quot;clike&quot;&gt;var sessions = client.Session.GetList();
if (sessions.Count &amp;gt; 0) 
{ 
client.AttachToSession(sessions[0]); // Подключаемся к первой найденной
}&lt;/pre&gt;
  &lt;h2 id=&quot;user-content-эмуляция-действий-пользователя&quot;&gt;3. Эмуляция действий пользователя&lt;/h2&gt;
  &lt;p id=&quot;Le9P&quot;&gt;Теперь вы можете гибко включать и отключать эмуляцию «на лету». Это полезно, когда нужно максимально быстро прокликать меню без движения мыши, а затем снова вернуть человекоподобное поведение:&lt;/p&gt;
  &lt;pre id=&quot;DWox&quot; data-lang=&quot;clike&quot;&gt;// Полная эмуляция (плавное движение мыши, случайные задержки набора текста)
client.SetEmulationLevel(EmulationLevel.Full);
// Мгновенные действия (максимальная скорость)
client.SetEmulationLevel(EmulationLevel.None);
&lt;/pre&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;user-content-3-обновленные-типы-данных-enums-и-actionmouse&quot;&gt;Также хочется отметить, что были удалены следующие emun:  &lt;br /&gt;LeftClick_notEmuliation, RightClick_notEmuliation, Focus_notEmuliation и т.д. для упрощения и очистки API&lt;/p&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;Ly4e&quot;&gt;4. Обновленные типы данных (Enums)&lt;/h2&gt;
  &lt;p id=&quot;CEUK&quot;&gt;Код стал строже и логичнее. Там, где раньше (например, в методах клавиатуры) передавались обычные строки, теперь везде используется строгая типизация, что защищает от опечаток (совместимость сохранена)&lt;/p&gt;
  &lt;pre id=&quot;UlLm&quot;&gt;client.Keyboard(&amp;quot;press&amp;quot;, &amp;quot;Enter&amp;quot;); //Старый подход
client.Keyboard(KeyboardAction.Press, &amp;quot;Enter&amp;quot;); //Новый подход&lt;/pre&gt;
  &lt;p id=&quot;xTUL&quot;&gt;Что касается &lt;strong&gt;работы с мышью&lt;/strong&gt;: В старой версии вы привыкли использовать раздельные перечисления &lt;code&gt;RiseBySelector.LeftClick&lt;/code&gt; и &lt;code&gt;RiseByCoordinates.LeftClick&lt;/code&gt;что могло вызвать путаницу. Они по-прежнему поддерживаются для совместимости, но &lt;strong&gt;в WraithCore добавлен новый универсальный Enum — &lt;code&gt;ActionMouse&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;
  &lt;p id=&quot;go0w&quot;&gt;Теперь вам не нужно запоминать и использовать разные &lt;code&gt;Enum&lt;/code&gt; в зависимости от того, куда вы кликаете по элементу или по координатам. &lt;code&gt;ActionMouse&lt;/code&gt; работает везде:&lt;/p&gt;
  &lt;pre id=&quot;Plgz&quot; data-lang=&quot;clike&quot;&gt;// Единый стандарт взаимодействия через ActionMouse:
// Legacy код: client.MouseRise(&amp;quot;button#submit&amp;quot;, RiseBySelector.LeftClick);
// Legacy код: client.MouseRise(500, 300, RiseByCoordinates.RightClick);
client.MouseRise(&amp;quot;button#submit&amp;quot;, ActionMouse.LeftClick); // Клик по селектору
client.MouseRise(500, 300, ActionMouse.RightClick); // Клик по координатам
client.MouseRise(&amp;quot;.slider&amp;quot;, ActionMouse.Focus); // Фокус&lt;/pre&gt;
  &lt;p id=&quot;6RAa&quot;&gt;Это объединение делает код чище и избавляет от дублирования логики при написании шаблонов.&lt;/p&gt;
  &lt;h2 id=&quot;user-content-4-изменения-в-работе-с-трафиком&quot;&gt;5. Изменения в работе с Трафиком&lt;/h2&gt;
  &lt;p id=&quot;y73B&quot;&gt;В новой версии отказались от TCP-сокетов и класса Traffic в пользу чистых REST-запросов и класса NetworkRequest.&lt;/p&gt;
  &lt;h3 id=&quot;user-content-стало&quot;&gt;Стало&lt;/h3&gt;
  &lt;p id=&quot;xzhv&quot;&gt;Запросы теперь содержат полные данные: заголовки, статусы, метод.&lt;/p&gt;
  &lt;pre id=&quot;4zDi&quot; data-lang=&quot;clike&quot;&gt;// Включение мониторинга (с опцией захвата тела ответа и формата)
client.TrafficMonitorStart(TrafficCaptureFormat.Base64, captureBodies: true);
// Получение профильтрованного списка
List&amp;lt;NetworkRequest&amp;gt; requests = client.TrafficMonitorGet();
foreach(NetworkRequest req in requests) 
{ 
    if (req.Url.Contains(&amp;quot;api/v1/login&amp;quot;)) 
    { 
    project.SendInfoToLog($&amp;quot;Найден запрос авторизации: {req.Url}&amp;quot;); 
    project.SendInfoToLog($&amp;quot;Тело ответа: {req.ResponseBody}&amp;quot;); 
    // Полное тело ответа! 
    }
}
// Очистка и Остановка (обязательно отключайте для экономии ОЗУ)
client.TrafficMonitorStop();
client.TrafficMonitorClear();&lt;/pre&gt;
  &lt;h2 id=&quot;user-content-5-новые-функции-и-улучшения&quot;&gt;6. Новые функции и улучшения&lt;/h2&gt;
  &lt;p id=&quot;EBq8&quot;&gt;Помимо кардинального улучшения скорости парсинга и стабильности выполнения в проект добавлены новые супер-фичи:&lt;/p&gt;
  &lt;p id=&quot;Sh9u&quot;&gt;&lt;strong&gt;6.1) Поддержка Shadow DOM (&lt;code&gt;:locator:&lt;/code&gt;)&lt;/strong&gt;: Теперь можно искать элементы внутри закрытых теневых деревьев нестандартных сайтов! Используйте EvaluateHandle для захвата, а затем кликайте:&lt;/p&gt;
  &lt;pre id=&quot;blBD&quot; data-lang=&quot;clike&quot;&gt;client.EvaluateHandle(&amp;quot;document.querySelector(&amp;#x27;host&amp;#x27;).shadowRoot.querySelector(&amp;#x27;btn&amp;#x27;)&amp;quot;);
// Legacy код: client.MouseRise(&amp;quot;:locator:&amp;quot;, RiseBySelector.LeftClick);
client.MouseRise(&amp;quot;:locator:&amp;quot;, ActionMouse.LeftClick);&lt;/pre&gt;
  &lt;p id=&quot;KILb&quot;&gt;&lt;strong&gt;6.2) Динамический Python &lt;code&gt;client.Exec(python_script)&lt;/code&gt;&lt;/strong&gt;: Позволяет отправить сложный питон скрипт прямо на сервер для исполнения &amp;quot;по месту&amp;quot;. Внутри вашего скрипта у вас есть прямой доступ к переменным &lt;code&gt;page&lt;/code&gt; (объект страницы) и &lt;code&gt;context&lt;/code&gt; (контекст браузера).&lt;/p&gt;
  &lt;pre id=&quot;Ptx5&quot; data-lang=&quot;clike&quot;&gt;string code = @&amp;quot;
# Прямой доступ к браузеру
title = await page.title()
return title
&amp;quot;;
var result = client.Exec(code);&lt;/pre&gt;
  &lt;p id=&quot;ubdn&quot;&gt;&lt;strong&gt;6.2) Продвинутые ожидания загрузки страницы &lt;code&gt;client.WaitForLoadState(...)&lt;/code&gt;&lt;/strong&gt;:&lt;/p&gt;
  &lt;ul id=&quot;LGUb&quot;&gt;
    &lt;ul id=&quot;d7WL&quot;&gt;
      &lt;li id=&quot;dXQb&quot;&gt;&lt;code&gt;WaitUntilState.NetworkIdle&lt;/code&gt; — Ждать &amp;quot;тишины&amp;quot; сети (идеально для SPA, React/Vue сайтов, догружаемых скриптами).&lt;/li&gt;
      &lt;li id=&quot;7dtU&quot;&gt;&lt;code&gt;WaitUntilState.DOMContentLoaded&lt;/code&gt; — Только DOM дерево (максимальная скорость, не ждет картинки). Включена по умолчанию&lt;/li&gt;
      &lt;li id=&quot;7et5&quot;&gt;&lt;code&gt;WaitUntilState.Load&lt;/code&gt;— Ждать полной прогрузки страницы&lt;/li&gt;
      &lt;li id=&quot;JKL1&quot;&gt;&lt;code&gt;WaitUntilState.Commit&lt;/code&gt;— Отключается после начала действия навигации&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/ul&gt;
  &lt;p id=&quot;lJvh&quot;&gt;&lt;strong&gt;6.3) Метод CheckAny (Умный и быстрый поиск элементов)&lt;/strong&gt;: Ищет любой из переданных селекторов на странице (даже во всех фреймах сразу) и возвращает название появившегося первым. Очень удобно для логики &amp;quot;Что появилось: Капча или Успех?&amp;quot;.&lt;/p&gt;
  &lt;pre id=&quot;OlwM&quot; data-lang=&quot;clike&quot;&gt;var targets = new Dictionary&amp;lt;string, string&amp;gt;
{ 
   { &amp;quot;captcha&amp;quot;, &amp;quot;div.g-recaptcha&amp;quot; },
   { &amp;quot;success_message&amp;quot;, &amp;quot;div.alert-success&amp;quot; },
   { &amp;quot;error_login&amp;quot;, &amp;quot;#login-error&amp;quot; }
};
// Ждем появления любого из этих 3-х элементов (таймаут 10 секунд)
string result = client.CheckAny(targets, 10000);
if (result == &amp;quot;captcha&amp;quot;){
   project.SendInfoToLog(&amp;quot;Надо решать капчу!&amp;quot;);
   return &amp;quot;Надо решать капчу!&amp;quot;;
   }&lt;/pre&gt;
  &lt;p id=&quot;JTID&quot;&gt;&lt;strong&gt;6.4) Работа с мобильными профилями&lt;/strong&gt;: Добавлена новая (пока тестовая) возможность работы с мобильными контекстами (задание fingerprint&amp;#x27;ов мобильных устройств). Фича будет дорабатываться.&lt;/p&gt;
  &lt;pre id=&quot;U2x8&quot; data-lang=&quot;clike&quot;&gt;// Переключаем тип девайса для правильной эмуляции мобильных тапов
client.SelectDevice(DeviceType.Mobile);&lt;/pre&gt;
  &lt;pre id=&quot;rWCK&quot; data-lang=&quot;clike&quot;&gt;Так же по умолчанию отключена функция эмуляции &amp;quot;свайпа&amp;quot;, при включении скрипт вместо прокрутки колеса мыши, будет старатся эмулировать свай (зажать мышь в центре экрана и протянуть вверх/вниз), включить эту функцию можно с помощью:
client.Settings.SetMobileSwipesEnabled(true);&lt;/pre&gt;
  &lt;p id=&quot;rIBw&quot;&gt;&lt;strong&gt;6.5) Работа с куками&lt;/strong&gt;:&lt;/p&gt;
  &lt;p id=&quot;MrHg&quot;&gt; GetCookies(), ClearCookies(), AddCookies(json) теперь используют стандартные JSON массивы, полностью совместимые с форматами популярных расширений Chrome.&lt;/p&gt;
  &lt;pre id=&quot;LcBi&quot; data-lang=&quot;clike&quot;&gt;// 1. Получаем ВСЕ куки браузера в формате JSON
string cookiesJson = client.GetCookies();
// 2. Получаем куки только для конкретных URL
string specificCookies = client.GetCookies(new[] { &amp;quot;https://example.com&amp;quot;, &amp;quot;https://google.com&amp;quot; });
// 3. Очищаем ВСЕ куки
client.ClearCookies();
// 4. Удаляем куки только для конкретных доменов
client.ClearCookies(new[] { &amp;quot;facebook.com&amp;quot;, &amp;quot;instagram.com&amp;quot; });
// 5. Добавляем новые куки из сохраненного профиля
string myCookies = &amp;quot;[{\&amp;quot;name\&amp;quot;:\&amp;quot;session_id\&amp;quot;,\&amp;quot;value\&amp;quot;:\&amp;quot;abc123\&amp;quot;,\&amp;quot;domain\&amp;quot;:\&amp;quot;.example.com\&amp;quot;}]&amp;quot;;
client.AddCookies(myCookies);&lt;/pre&gt;
  &lt;p id=&quot;Bh3l&quot;&gt;&lt;strong&gt;6.6) Централизованное управление настройками проекта (&lt;code&gt;client.Settings&lt;/code&gt;)&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;HYqL&quot;&gt;В новой архитектуре все глобальные настройки клиентской части вынесены в специальный менеджер &lt;code&gt;client.Settings&lt;/code&gt;. Это упрощает управление конфигурацией бота и делает исходный код более читаемым.&lt;/p&gt;
  &lt;p id=&quot;c3nr&quot;&gt;Вам больше не нужно искать, в каких методах настраиваются базовые параметры — всё хранится в одном месте:&lt;/p&gt;
  &lt;ul id=&quot;X9q5&quot;&gt;
    &lt;li id=&quot;pDz8&quot;&gt;Дополнительное время ожидания HTTP-ответа&lt;/li&gt;
  &lt;/ul&gt;
  &lt;pre id=&quot;wM3l&quot; data-lang=&quot;clike&quot;&gt;client.Settings.CommandTimeout = 10; // Установить
int timeout = client.Settings.CommandTimeout; // Прочитать&lt;/pre&gt;
  &lt;ul id=&quot;DB4F&quot;&gt;
    &lt;li id=&quot;user-content-эмуляция-и-anti-detect&quot;&gt;Эмуляция и Anti-Detect&lt;/li&gt;
  &lt;/ul&gt;
  &lt;pre id=&quot;JT9N&quot; data-lang=&quot;clike&quot;&gt;// Режим Human или мгновенный
client.Settings.SetEmulationLevel(EmulationLevel.Full);
client.Settings.SetEmulationLevel(EmulationLevel.None);
// Движок мыши: Ghost = кривые Безье, Native = прямые линии
client.Settings.SetCursorEngine(CursorEngine.Ghost);
// Скорость мыши и набора текста
client.Settings.SetMouseSpeed(70, 95);
client.Settings.SetTypingSpeed(50, 150);
// Процент опечаток при вводе (0-100)
client.Settings.SetMistakeRate(3);&lt;/pre&gt;
  &lt;ul id=&quot;d99y&quot;&gt;
    &lt;li id=&quot;user-content-таймауты-и-ожидания&quot;&gt;Таймауты и Ожидания&lt;/li&gt;
  &lt;/ul&gt;
  &lt;pre id=&quot;RvpN&quot; data-lang=&quot;clike&quot;&gt;/* Глобальный таймаут ждала появления элементов (сек)
Если не указать в методе, то будет использоватся именно это значение
client.MouseRise(&amp;quot;//button&amp;quot;);
*/
client.Settings.SetWaitElementTimeout(15.0);
// Что считать &amp;quot;загруженной страницей&amp;quot; для действий навигации
client.Settings.SetWaitUntilState(WaitUntilState.NetworkIdle);
// Нужное состояние элемента перед взаимодействием
client.Settings.SetState(ElementState.Visible); // Элемент должен быть виден
client.Settings.SetState(ElementState.Attached); // Просто в DOM
// Таймаут бездействия сессии (0 = откл)
client.Settings.SetIdleTimeout(300); //Если сессия не активна болеее 300 сек, то она будет закрыта&lt;/pre&gt;
  &lt;ul id=&quot;3Enc&quot;&gt;
    &lt;li id=&quot;user-content-мобильные-устройства&quot;&gt;Мобильные устройства&lt;/li&gt;
  &lt;/ul&gt;
  &lt;pre id=&quot;qM8I&quot; data-lang=&quot;clike&quot;&gt;// Переключение между Desktop и Mobile
client.Settings.SelectDevice(DeviceType.Mobile);
// Свайпы пальцем вместо колесика мыши
client.Settings.SetMobileSwipesEnabled(true);&lt;/pre&gt;
  &lt;ul id=&quot;Jvqp&quot;&gt;
    &lt;li id=&quot;user-content-вспомогательные&quot;&gt;Вспомогательные&lt;/li&gt;
  &lt;/ul&gt;
  &lt;pre id=&quot;qxPK&quot; data-lang=&quot;clike&quot;&gt;// Логирование в консоль WraithCore.exe
client.Settings.SetLogging(true);
// Шаг прокрутки колесика (пиксели)
client.Settings.SetMouseWheelStepSize(100);
// Показать/скрыть красный отладочный курсор на странице
client.Settings.EnablesCursorVisibility();
client.Settings.DisablesCursorVisibility();
// Получить все настройки в JSON
string json = client.Settings.Get();
// Массовое обновление через анонимный объект
client.Settings.Update(new { device_type = &amp;quot;mobile&amp;quot;, mistake_rate = 5 });&lt;/pre&gt;

</content></entry><entry><id>midaw007:0LhmpHX5ewh</id><link rel="alternate" type="text/html" href="https://teletype.in/@midaw007/0LhmpHX5ewh?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=midaw007"></link><title>Обновления InfiniteServer.exe</title><published>2024-12-09T09:22:01.572Z</published><updated>2024-12-09T09:26:47.965Z</updated><summary type="html">Version 1.9.8.1 
1) Улучшен метод поиска элементов
2)Исправленно время ожидания элементов (погрешность 1-2 сек в большую сторону)
3) После запуска браузера при закрытии InfiniteServer.exe автоматически закроет соединение в течении 10 сек
4) Ускорено время проверки лицензии
5) Импортированы менеджеры для управления антидетектами: Octo, IxBrowser, AdsPower (Создание профилей, удаление профилей, получения списка профилей, обновление прокси)
6) Немного оптимизирован и ускорен код</summary><content type="html">
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;hakx&quot;&gt;&lt;strong&gt;Version 1.9.8.1 &lt;/strong&gt;&lt;br /&gt;1) Улучшен метод поиска элементов&lt;br /&gt;2)Исправленно время ожидания элементов (погрешность 1-2 сек в большую сторону)&lt;br /&gt;3) После запуска браузера при закрытии InfiniteServer.exe автоматически закроет соединение в течении 10 сек&lt;br /&gt;4) Ускорено время проверки лицензии&lt;br /&gt;5) Импортированы менеджеры для управления антидетектами: Octo, IxBrowser, AdsPower (Создание профилей, удаление профилей, получения списка профилей, обновление прокси)&lt;br /&gt;6) Немного оптимизирован и ускорен код&lt;br /&gt;7) Обновлен тестовый шаблон Infinite_Test.zp&lt;/p&gt;
  &lt;/section&gt;

</content></entry><entry><id>midaw007:InfiniteServerHelp</id><link rel="alternate" type="text/html" href="https://teletype.in/@midaw007/InfiniteServerHelp?utm_source=teletype&amp;utm_medium=feed_atom&amp;utm_campaign=midaw007"></link><title>InfiniteServer</title><published>2024-12-01T07:57:01.030Z</published><updated>2024-12-09T09:27:59.043Z</updated><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img2.teletype.in/files/5a/dd/5adde28e-8535-4b7d-ac34-6c0e037707bb.png"></media:thumbnail><summary type="html">InfiniteServer.exe – это консольное приложение, созданное для автоматизации &quot;антидетект браузеров&quot; с помощью программы ZennoPoster(взаимодействие происходит по принципу клиент-сервер, где клиент это Zennoposer, который отправляет команду и ждет ответ, а InfiniteServer.exe - сервер, который ждет команду, выполняет ее и отправляет ответ обратно клиенту, то есть в ZennoPoster)</summary><content type="html">
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;r9Qj&quot; data-align=&quot;center&quot;&gt;Что такое InfiniteServer?&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;mnaZ&quot;&gt;&lt;strong&gt;InfiniteServer.exe&lt;/strong&gt; – это консольное приложение, созданное для автоматизации &amp;quot;антидетект браузеров&amp;quot; с помощью программы ZennoPoster(взаимодействие происходит по принципу клиент-сервер, где клиент это Zennoposer, который отправляет команду и ждет ответ, а InfiniteServer.exe - сервер, который ждет команду, выполняет ее и отправляет ответ обратно клиенту, то есть в ZennoPoster) &lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;FY38&quot; data-align=&quot;center&quot;&gt;Что мне нужно чтобы начать работу?&lt;/h2&gt;
  &lt;/section&gt;
  &lt;h2 id=&quot;gQTq&quot;&gt;&lt;strong&gt;1) Убедиться в том, что оно вам действительно надо... &lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;RkRz&quot;&gt;Данное решение рассчитано для людей имеющих базовые представление об автоматизации и о том, что такое ZennoPoster и с чем его едят. InfiniteServer не является панацеей для всех ваших задач и проблем, и это не дает вам гарантию того, что вы сразу же побежите регистрировать гугл аккаунты тысячами или ваши аккаунты никогда не будут блокировать. &lt;/p&gt;
  &lt;p id=&quot;hfxE&quot;&gt;Всё взаимодействие с браузером происходит исключительно с помощью C# кода, хоть практически все нужные вам действия уже прописаны в тестовом шаблоне вам все равно придется чему-то &lt;strong&gt;УЧИТЬСЯ&lt;/strong&gt;, как минимум вам нужно понимать отличие &lt;u&gt;string&lt;/u&gt; от &lt;u&gt;int,&lt;/u&gt; как работать с XPath либо CSS, понимать что такое API и уметь разбираться в документации. &lt;/p&gt;
  &lt;p id=&quot;fdyA&quot;&gt;И да, &lt;u&gt;мы не заявляем&lt;/u&gt;, что наше решение является САМЫМ лучшим на рынке, аналогов которому нет и так далее по тексту... У нас тоже есть баги, есть к чему придраться, есть много моментов которые лично меня как разработчика не устраивают, любую критику, жалобы и предложения с удовольствием примем и постараемся что-то улучшить или исправить) Так же если вам не хватает какой либо функции, или вы считаете что она необходима, так же с радостью выслушаем ваши предложения. &lt;/p&gt;
  &lt;p id=&quot;ia31&quot;&gt;Если вы готовы принять написанную информацию выше, то переходите к пункту номер 2&lt;/p&gt;
  &lt;h2 id=&quot;tbM9&quot;&gt;&lt;strong&gt;2) Оплатить или активировать бесплатную версию&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;HYUK&quot;&gt;Цена InfiniteServer 30$/месяц, так же вы можете использовать бесплатную(trial) версию &lt;u&gt;на 7 дней&lt;/u&gt; (без ограничения функционала)&lt;br /&gt;Для выписки лицензии обращаться: &lt;a href=&quot;https://t.me/Midaw007&quot; target=&quot;_blank&quot;&gt;Midaw007&lt;/a&gt; или &lt;a href=&quot;https://t.me/XAPOHbI4&quot; target=&quot;_blank&quot;&gt;XAPOHbI4&lt;/a&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;qcOC&quot; data-align=&quot;center&quot;&gt;&lt;strong&gt;ОБЯЗАТЕЛЬНО СВЕРЯЙТЕ КОНТАКТЫ ПРИ ОПЛАТЕ&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;JC3F&quot;&gt;Для активации лицензии нужен ваш &lt;strong&gt;zenno id&lt;/strong&gt;, что бы его получить есть 2 варианта:&lt;/p&gt;
  &lt;p id=&quot;1HHA&quot;&gt;&lt;strong&gt;1. Получить через ProjectMaker&lt;/strong&gt;&lt;br /&gt;Для этого в ProjectMaker нужно в окне переменных найти вкладку &amp;quot;Окружение&amp;quot;, в этом окне взять значение переменной &amp;quot;Environment.CurrentUser&amp;quot; это и есть ваш zenno id&lt;/p&gt;
  &lt;figure id=&quot;GQk6&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/f3/12/f312b6f4-1d2b-4e43-abcb-e79ac7d8a9ac.png&quot; width=&quot;618&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;n5Sw&quot;&gt;&lt;strong&gt;2 .Получить через личный кабинет ZennoLab&lt;/strong&gt;&lt;/p&gt;
  &lt;p id=&quot;0MOl&quot;&gt;Личный кабинет =&amp;gt; Клик по иконке профиля =&amp;gt; Настройки профиля =&amp;gt; Скопировать ID&lt;/p&gt;
  &lt;figure id=&quot;K4Kv&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/e0/87/e087252a-d70e-4dad-98ad-ca5698641fdf.png&quot; width=&quot;606.8326996197718&quot; /&gt;
  &lt;/figure&gt;
  &lt;figure id=&quot;esZe&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/81/6f/816fe6c9-9777-49f4-8e59-124362193f89.png&quot; width=&quot;594&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;GVmE&quot;&gt;&lt;strong&gt;3) Проверить версию .NET&lt;/strong&gt;&lt;/h2&gt;
  &lt;p id=&quot;qzLC&quot;&gt;InfiniteServer.exe работает на версии .NET8, перед началом работы вам нужно убедится в том, что на вашем устройстве установлены все подходящие компоненты. Проверить это достаточно просто, для этого нужно отрыть командную строку (cmd) и выполнить команду указанную ниже: &lt;/p&gt;
  &lt;pre id=&quot;Nrum&quot;&gt;dotnet --version&lt;/pre&gt;
  &lt;figure id=&quot;OBT3&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/cc/52/cc52cc83-c415-4c97-b891-443e56eddcb1.png&quot; width=&quot;732&quot; /&gt;
    &lt;figcaption&gt;&lt;strong&gt;Ввод команды для проверки версии .NET&lt;/strong&gt;&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;DJLV&quot;&gt;Далее нажимаем &amp;quot;Enter&amp;quot; и получаем ответ:&lt;/p&gt;
  &lt;figure id=&quot;90eS&quot; class=&quot;m_custom&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/b8/78/b878c9df-54a7-43e3-9e64-5604067bbda7.png&quot; width=&quot;702&quot; /&gt;
    &lt;figcaption&gt;Положительный результат&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;gUyr&quot;&gt;Если вы получится ответ с установленной версий&lt;u&gt; 8.0 и выше&lt;/u&gt;, то можете сразу переходить к шагу &lt;strong&gt;номер 4&lt;/strong&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(34,  84%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Rb5m&quot;&gt;Если ваш ответ что-то похожее на &amp;quot;dotnet не является внутренней или внешней командой...&amp;quot; или ваша версия .NET ниже 8, то перейдите на &lt;a href=&quot;https://dotnet.microsoft.com/ru-ru/download/dotnet/8.0&quot; target=&quot;_blank&quot;&gt;официальный сайт Microsoft&lt;/a&gt; для загрузки установщика нужной версии&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;Q4Nj&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/02/d4/02d4cf7f-eecb-418c-ac4a-9a655afd5912.png&quot; width=&quot;707&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;s7Sp&quot;&gt;Далее выполните установку, закройте консоль(cmd) и выполните шаг номер 3 снова&lt;/p&gt;
  &lt;p id=&quot;4Ufp&quot;&gt;&lt;/p&gt;
  &lt;h2 id=&quot;NAP4&quot;&gt;4) Скачайте архив с проектом и разархивируйте&lt;/h2&gt;
  &lt;h3 id=&quot;0U7b&quot;&gt;Архив можно скачать в нашем телеграмм канале &lt;a href=&quot;https://t.me/infinite_script/129&quot; target=&quot;_blank&quot;&gt;СКАЧАТЬ&lt;/a&gt;&lt;/h3&gt;
  &lt;figure id=&quot;AeVC&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0b/6a/0b6a525c-b491-4d85-a7ab-e08dbb786c22.png&quot; width=&quot;259&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;X2Lb&quot;&gt;В архиве вы найдете несколько директорий и файлов:&lt;/p&gt;
  &lt;ol id=&quot;EQcr&quot;&gt;
    &lt;li id=&quot;UvAI&quot;&gt; Директория InfiniteServer – в ней хранится нужный нам для запуска InfiniteServer.exe и все нужные для него компоненты&lt;/li&gt;
    &lt;li id=&quot;EuiL&quot;&gt; Директория Infinite_Test – в ней находиться тестовый шаблон с примерами кода и пояснениями, так же в директории находится файл &amp;quot;MetaMask.png&amp;quot;, который используется для примера загрузки файла на сайт&lt;/li&gt;
    &lt;li id=&quot;bFMV&quot;&gt;InfiniteClient.dll – C# библиотека для взаимодействия с InfiniteServer.exe с помощью ZennoPoster&lt;/li&gt;
    &lt;li id=&quot;OK9j&quot;&gt;InfiniteClient.xml – XML документация для InfiniteClient.dll, нужна для всплывающих подсказок при написании кода &lt;/li&gt;
    &lt;li id=&quot;zb8J&quot;&gt;1.9.7.19.txt – дублирующийся текстовый файл для просмотра версии  &lt;/li&gt;
  &lt;/ol&gt;
  &lt;figure id=&quot;Il2l&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
    &lt;img src=&quot;https://img4.teletype.in/files/71/40/71403f0d-d914-48e8-a58e-f4b27a8085b6.png&quot; width=&quot;700&quot; /&gt;
    &lt;figcaption&gt;InfiniteClient.xml&lt;/figcaption&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;PEV4&quot;&gt;5) Добавить необходимые компоненты в рабочую папку ZennoPoster&lt;/h2&gt;
  &lt;p id=&quot;iDWx&quot;&gt;&lt;/p&gt;
  &lt;h3 id=&quot;dcA2&quot;&gt;1. Откройте папку в которую вы установили ZennoPoster&lt;br /&gt;&lt;/h3&gt;
  &lt;figure id=&quot;zNNa&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/ca/90/ca900476-65db-4a0f-ad2e-8db3a82f0b14.png&quot; width=&quot;506&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;nXcV&quot;&gt;2. Перейдите в директорию ExternalAssemblies&lt;/h3&gt;
  &lt;figure id=&quot;RPnE&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/12/94/12943f4e-0399-4876-a613-6bb8a410e8da.png&quot; width=&quot;534&quot; /&gt;
  &lt;/figure&gt;
  &lt;h3 id=&quot;2Rit&quot;&gt;3. Перейдите в директорию ExternalAssemblies&lt;/h3&gt;
  &lt;p id=&quot;4GNj&quot;&gt;После перехода в директорию ExternalAssemblies, переместите в нее 2 файла (InfiniteClient.dll и InfiniteClient.xml)&lt;br /&gt;&lt;/p&gt;
  &lt;figure id=&quot;az33&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/a1/9e/a19eec96-62aa-496c-b28c-9d76c703e7b1.png&quot; width=&quot;459&quot; /&gt;
  &lt;/figure&gt;
  &lt;h2 id=&quot;KHo0&quot;&gt;6) Почти все готово!!!&lt;/h2&gt;
  &lt;p id=&quot;ycta&quot;&gt;Если вы все сделали правильно, то теперь вам нужно открыть тестовый шаблон Infinite_Test.zp, который находится в директории Infinite_Test и выполнить первый кубик(экшен)&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(236, 74%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;S9zF&quot;&gt;&lt;strong&gt;Если у вас не посыпались ошибки, то настройка выполнена правильно и вы можете начинать писать свои проекты&lt;/strong&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;zOzA&quot;&gt;Далее для написания будущих шаблонов дабы не морочиться с добавлением ссылок из GAC и не прописывать using и общий код, рекомендую просто копировать проект  Infinite_Test, переименовать его, удалить лишние кубики и продолжить работу&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;VRJf&quot;&gt;&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(323, 50%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;h2 id=&quot;xstX&quot; data-align=&quot;center&quot;&gt;Ниже в этой статье будет информация для тех, кто немного хочет вникнуть в то, как пользоваться данным решением, к прочтению рекомендовано, но не обязательно&lt;/h2&gt;
  &lt;/section&gt;
  &lt;p id=&quot;vlpd&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;6UNw&quot;&gt;&lt;strong&gt;1) Для начала нам нужно создать экземпляр класса Client и сохранить его &amp;quot;в память&amp;quot; зенопостера.&lt;/strong&gt; Это делается для того, что бы мы могли обращаться к этому объекту в других кубиках. &lt;/p&gt;
  &lt;figure id=&quot;H1e3&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/28/d5/28d52178-21dd-46ae-8454-00ae184af500.png&quot; width=&quot;922.8461538461538&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;RC52&quot;&gt;Далее в каждом последующем кубике для работы с нашим объектом его нужно &amp;quot;доставать из памяти&amp;quot; с помощью строки:&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(24,  24%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;Rswc&quot;&gt;&lt;code&gt;InfiniteClient.Client client = project.Context[&amp;quot;client&amp;quot;] as InfiniteClient.Client;&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;TdNe&quot;&gt;&lt;strong&gt;2) Открываем соединение.&lt;/strong&gt; В этот момент происходит запуск InfiniteServer.exe (по умолчанию в фоновом режиме) и создания соединения с ZennoPoster. &lt;u&gt;Обязательно &lt;/u&gt;указать путь к InfiniteServer.exe в переменную (в моем случае имя переменной &amp;quot;pathToExe&amp;quot;), пример пути выглядит так:&lt;br /&gt;C:\Users\user\Desktop\InfiniteSever\InfiniteServer.exe&lt;/p&gt;
  &lt;figure id=&quot;owwY&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/0d/0b/0d0b29f6-5522-4000-aa52-c83024cc5237.png&quot; width=&quot;1177&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;Rl24&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;wpEg&quot;&gt;&lt;strong&gt;3) Запуск браузера.&lt;/strong&gt; После успешного запуска InfiniteServer.exe мы можем приступить к запуску браузера, в нашем решении есть 4 встроенных браузера для запуска (AdsPower, Dolphin, OctoBrowser, IxBrowser), все эти браузеры запускаются через метод LaunchBrowser(BrowserType.НАЗВАНИЕ_АНТИКА, ID_ПРОФИЛЯ). Этот метод принимает 2 либо 3 параметра, 1й- тип браузера, 2-й ID профиля (ВАЖНО, именно ID профиля, не его имя или порядковый номер, узнать как найти ID нужного антика можно &lt;a href=&quot;https://telegra.ph/Poisk-ID-v-antidetekt-brauzerah-11-17&quot; target=&quot;_blank&quot;&gt;ТУТ&lt;/a&gt;) и 3-й, но не обязательный параметр это аргументы браузер (кубик 3.1), он принимает в себя массив строк пример:&lt;br /&gt;&lt;br /&gt;БЕЗ АРГУМЕНТОВ:&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;18Xa&quot;&gt;&lt;code&gt;var idProfile = project.Variables[&amp;quot;idProfile&amp;quot;].Value;&lt;br /&gt;client.LaunchBrowser(BrowserType.IxBrowser, idProfile);&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;p id=&quot;3A4G&quot;&gt;С АРГУМЕНТАМИ:&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(0,   0%,  var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;K04r&quot;&gt;&lt;code&gt;var idProfile = project.Variables[&amp;quot;idProfile&amp;quot;].Value;&lt;br /&gt;var args = new string[] {&amp;quot;--window-size=1980,796&amp;quot;, &amp;quot;--blink-settings=imagesEnabled=false&amp;quot;};&lt;br /&gt;client.LaunchBrowser(BrowserType.IxBrowser, idProfile, args);&lt;/code&gt;&lt;/p&gt;
  &lt;/section&gt;
  &lt;figure id=&quot;ynRa&quot; class=&quot;m_custom&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/1d/dd/1ddd83eb-23cf-47fd-8c4f-3ca1071cd8fd.png&quot; width=&quot;1139&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;KM9j&quot;&gt;Так же можно подключится к любому другому НЕ ВСТРОЕМУ антику с помощью CDP соединения (http/wss) для этого используем метод &lt;code&gt;ConnectToBrowser()&lt;/code&gt;:&lt;/p&gt;
  &lt;p id=&quot;ecTY&quot;&gt;&lt;code&gt;client.ConnectToBrowser(&amp;quot;ws://localhost:9222/devtools/page/DAB7FB6187B554E10B0BD18821265734&amp;quot;);&lt;/code&gt;&lt;/p&gt;
  &lt;p id=&quot;32Oz&quot;&gt;Точку подключения можно получить из ответа при запуске браузера по API&lt;/p&gt;
  &lt;p id=&quot;S6Wi&quot;&gt;&lt;strong&gt;3) Активируем вкладку для работы.  &lt;/strong&gt;На данный момент я не смог придумать механизм автоматической активации нужной вкладки, и в принципе считаю это лишним, так как такие попытки были приняты в плагине &amp;quot;AntyZenno&amp;quot; что привело к дополнительным не удобствам. Поэтому после запуска браузера я обычно получаю количество вкладок и закрываю все, кроме 1, даты скрипты не путались во вкладках, далее активирую первую вкладку и продолжаю работу (кубик номер 4)&lt;/p&gt;
  &lt;figure id=&quot;YyHy&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img2.teletype.in/files/9d/39/9d397992-94a1-4b4a-b6c7-de73bbb13254.png&quot; width=&quot;1410&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;kxVN&quot;&gt;&lt;strong&gt;4) Пишем свой проект дальше. &lt;/strong&gt;На этом этапе, стандартная настройка и запуск браузера выполнены, далее вы просто можете взять уже написанные мною кубики и заменить в них данные на свои или же написать свой код&lt;/p&gt;
  &lt;figure id=&quot;Xtjo&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img1.teletype.in/files/8a/ab/8aabc810-abae-4fdb-99e2-3bb59b5361a5.png&quot; width=&quot;939&quot; /&gt;
  &lt;/figure&gt;
  &lt;p id=&quot;7PQy&quot;&gt;БЛОК 1: Дополнительные настройки.&lt;/p&gt;
  &lt;p id=&quot;4iPf&quot;&gt;БЛОК 2: Готовые кубики с кликами, вводом текста, парсингом, работай с вкладками, загрузкой и скачиванием файлов и так далее. &lt;/p&gt;
  &lt;p id=&quot;6yJL&quot;&gt;В будущем к-во действий планируется расширить&lt;/p&gt;
  &lt;p id=&quot;aU3H&quot;&gt;&lt;/p&gt;
  &lt;p id=&quot;WKUr&quot;&gt;&lt;strong&gt;5) Закрываем браузер и соединение. &lt;/strong&gt;Дабы экономить ресурсы вашего устройства после отработки скрипта или же при выходе по GoodEnd или BadEnd рекомендую выполнять закрытие браузера и закрытие соединения, что бы на фоне не висела лишняя нагрузка &lt;/p&gt;
  &lt;figure id=&quot;xE16&quot; class=&quot;m_original&quot;&gt;
    &lt;img src=&quot;https://img3.teletype.in/files/64/be/64be1c53-640b-4a07-8d23-305dc0862a64.png&quot; width=&quot;1503&quot; /&gt;
  &lt;/figure&gt;
  &lt;section style=&quot;background-color:hsl(hsl(55,  86%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;p id=&quot;qzhC&quot;&gt;&lt;strong&gt;ВАЖНО!!!&lt;/strong&gt; Данное решение &lt;strong&gt;не работает с  внутренним браузером ZennoPoster&lt;/strong&gt; (но при необходимости можно работать одновременно и со встроенным браузером и с антидетект браузером), действия выполняемые кубиками (экшенами) такие как: &lt;u&gt;клик, ввод текста, работа с вкладками, переход по ссылкам, парсинг и т.д.&lt;/u&gt; не будут работать в антидетект браузере (см. рис. 1)&lt;/p&gt;
    &lt;figure id=&quot;x8BG&quot; class=&quot;m_original&quot; data-caption-align=&quot;center&quot;&gt;
      &lt;img src=&quot;https://img4.teletype.in/files/32/e1/32e1b7dc-64a0-4e9c-b906-9241efb8cbe7.png&quot; width=&quot;583&quot; /&gt;
      &lt;figcaption&gt;&lt;strong&gt;рис. 1&lt;/strong&gt;&lt;/figcaption&gt;
    &lt;/figure&gt;
  &lt;/section&gt;
  &lt;p id=&quot;e9Ek&quot;&gt;Но это не запрещает вам использовать такие кубики как: обработка текста, работа со списками и таблицами, логика, http запросы, работа с директориями, работа с базами данных и так далее&lt;/p&gt;
  &lt;section style=&quot;background-color:hsl(hsl(170, 33%, var(--autocolor-background-lightness, 95%)), 85%, 85%);&quot;&gt;
    &lt;figure id=&quot;H9RF&quot; class=&quot;m_original&quot;&gt;
      &lt;img src=&quot;https://img3.teletype.in/files/2e/cf/2ecf155f-5534-4924-ac42-bd2a4e8f3b99.png&quot; width=&quot;551&quot; /&gt;
    &lt;/figure&gt;
  &lt;/section&gt;

</content></entry></feed>