Достаточно давно в Human Emulator реализована возможность писать скрипты, используя язык программирования C#.
Но, к сожалению, это возможность очень слабо раскрыта в интернете. Информации с примерами практически нету. Всё что есть это простые примеры использования всех функций на
humanemulator.net, который является официальным мануалам к программе Human Emulator.
Поэтому мы решили начать публикацию цикла статей про использование C# в скриптах Human Emulator.
Для нас этот момент интересен тем, что при использовании C# можно создавать скрипты в виде отдельных программ, которые будут управлять Хуманом и при этом иметь свой собственный интерфейс и получать результаты такой работы непосредственно в программу. Итак, давай те разбираться.
Какие плюсы от использования C#?
Вам будет доступен весь набор инструментов .NET Framework. А так же как я писал выше возможность создавать скрипты в виде полноценных приложений с собственным интерфейсом и возможностью полноценно работать с результатами работы этих приложений. Надо отметить, что и раньше можно было создавать C# приложения для работы с Human Emulator, но тогда приходилось внутрь программы написанной на C# помещать скрипты php и их запускать в Хумане. Результаты работы таких скриптов помещать в текстовые файлы и уже с этими файлами работать из C#.
По такому принципу был написан нами Парсер Авито Недвижимость.В остальном всё зависит от вашего уровня знаний С# или PHP.
Как это работает? Пишем скрипт в Хумане либо в любой другой IDE, в которой можно писать код на C#.
Если мы работаем через Хуман, тогда у нас по кнопке запуска скрипта будет создаваться .exe файл и .bat, который его запускает.
Если же мы писали код в стороннем IDE, то мы запускаем .exe файл, который у нас получился после компиляции написанного нами скрипта,
перед этим не забыв запустить Human Emulator или прописать код запуска в самом скрипте.
Для работы с C# в Хуман Эмулятор были добавлены классы со всеми его объектами, аналогично тому, как это сделано в php. Все эти классы вынесены в отдельную dll библиотеку. О ней мы поговорим ниже.
Именно появление этой библиотеки дало возможно работать с Human Emulator напрямую при создании C# приложений, заточенных под Хуман Эмулятор.
Где взять примеры? Как я уже писал выше примеры есть на сайте humanemulator.net.
В описании всех функций всех объектов Human Emulator, теперь входят два примера один на PHP, второй на C#. Все эти примеры есть в Хумане.
С помощью этих примеров разработчики тестировали работу всех функций и объектов. Для того что бы они у вас были примеры написанные на C# при установке вы должны поставить галочку C# samples and tests of scripts. После чего в панели Быстрый Старт появляется папка Простые Примеры C#. В этой папке содержаться все тестовые скрипты на функции Human Emulator для всех его объектов.
Давайте рассмотрим пример самого распространённого действия — навигация в браузере. Примере находится Просты Примеры C#/Web/browser/navigate.cs.
Сам скрипт:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
#region using using System; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading; using XHE; using XHE.XHE_DOM; using XHE.XHE_System; using XHE.XHE_Window; using XHE.XHE_Web; #endregion class Program:XHEScript { static void Main(string[] args) { // init XHE server="127.0.0.1:7010"; InitXHE(); // начало echo("<hr><font color=blue>browser.navigate</font><hr>"); // 1 шаг echo("1. Перейдем на яху : "); echo(browser.navigate("http://yahoo.com")+"<br>"); // 2 шаг echo("2. Перейдем на пустую страницу : "); echo(browser.navigate("about:balnk")+"<br>"); // 3 шаг echo("3. Перейдем на яху : "); echo(browser.navigate("http://yahoo.com",false)); // конец echo("<hr><br>"); app.quit(); } } |
Как мы видем в скрипт включены все необходимые для работы библиотеки.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#region using using System; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading; using XHE; using XHE.XHE_DOM; using XHE.XHE_System; using XHE.XHE_Window; using XHE.XHE_Web; #endregion |
IP и порт, на которых работает Хуман указанны в переменной
1 |
server="127.0.0.1:7010"; |
.
Вызов функции
1 |
InitXHE(); |
инициализирует все объекты Хумана для дальнейшего их использования.
Далее мы просто работаем с необходимыми нам объектами, так же как это делается и в PHP скрипте.
Теперь давайте напишем простой пример в Visual Studio 2015. Пусть это будет простой диалог с полем ввода URL и кнопкой, по нажатию на которую в human emulator-е будет открываться страница, указанная в текстовом поле.
Для этого создаём новый проект C# Приложение Windows Forms. Добавляем в диалог текстовое поле и кнопку.
Компилируем, что бы получить .exe файл. Для того что бы использовать объекты Human Emulator в нашем проекте нам нужно подключить XHE.dll.
Сама dll-ка вместе с исходниками лежит в папке «Путь к папке с Human Emulator-м/Templates CSHARP/Lib/XHE/»,
поэтому вы всегда можете её доработать и добавить туда свой код. Копируем в папку с нашим *.exe XHE.dll из
«Путь к папке с Human Emulator-м/Templates CSHARP/Lib/XHE/XHE/bin/Release/» и подключаем её к нашему проекту.
Для этого в Обозревателе решения в нашем проекте находим папку Ссылки. Щёлкаем правой кнопкой мыши на этой папке.
Нажимаем Добавить ссылку… в открывшемся контекстном меню. Используя кнопку Обзор… внизу открывшегося диалога, добавляем XHE.dll в проект.
Теперь мы можем видеть объекты Хуман Эмулятора в нашем проекте. Для того что бы инициализировать объекты добавляем код :
1 |
using XHE; |
и
1 2 3 |
// инициализация XHEScript.server = "127.0.0.1:7010"; XHEScript.InitXHE(); |
в файл Program.cs.
Теперь он будет выглядеть так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace NavigateSample { static class Program { /// <summary> /// Главная точка входа для приложения. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // инициализация XHEScript.server = "127.0.0.1:7010"; XHEScript.InitXHE(); Application.Run(new Form1()); } } } |
Всё теперь мы можем полноценно работать с объектами Хумана в своём проекте. Добавим код перехода по ссылке в обработчик события кнопки следующим образом:
1 2 3 4 5 |
private void button1_Click(object sender, EventArgs e) { if(textBox1.Text!="") XHEScript.browser.navigate(textBox1.Text); } |
По нажатию на заданную кнопку в Хумане открытом на порту 7010 осуществляется переход по заданной в текстовом поле ссылке.
Возможность писать скрипты на C# для Human Emulator открывает больше возможностей при использовании этого инструмента.
Теперь можно писать не просто скрипты, а полноценные программы со своими системами защиты и выводом полученных результатов в удобный интерфейс,
с возможностью дальнейшей работы с ними, например, построение графиков, возможность делать выборки, экспорт/импорт данных в удобный формат и т.д..
Скачать код примера C# для Visual Studio 2015