====== Настройки программы ======
Все настройки программы задаются с помощью диалога настроек. Вызвать этот диалог можно через меню //Сервис->Настройки//
{{wiki:menu_service_xhe.jpg}}
Или с помощью горячей клавиши F9.
Диалог Настройки состоит из нескольких вкладок с помощью, которых настраиваются различные группы настроек. Подробное описание каждой вкладки вы найдете ниже. А также из следующих кнопок:
* Кнопка **Сохранить в файл** служит для сохранения всех выбранных настроек из диалога в файл с расширением INI.
* Кнопка **Загрузить из файла** служит для загрузки всех настроек из файла с расширением INI в диалог настроек.
* Кнопка **По умолчанию** выставляет все значения настроек на всех вкладках диалога настроек в значения по умолчанию.
* Кнопка **OK**. При нажатии на эту кнопку сохраняются все выбранные с помощью диалога настройки программы.
* Кнопка **Отмена**. Закрыть диалог настроек без сохранения всех изменений.
===== Основные =====
{{ wiki:settings_main_xhe.jpg }}
Закладка //Основные// содержит следующие настройки:
* **Порт** - Порт, на котором работает программа. По умолчанию 7010. Значение может быть любым свободным портом компьютера/сервера.
* **Пароль** - Пароль для подключения к программе. По умолчанию пустое значение.
* Поле **PHP папка** содержит путь к папке с PHP, с помощью которого в программе выполняются скрипты написанные на Php.
* Поле **Мои скрипты** содержит путь к папке со скриптами, которая отображается в дереве скриптов //Мои Скрипты// в панеле //Быстрый Старт//.
* **Стартовать с** поля для ввода страницы, которая будет открываться при запуске программы. Значение по умолчанию //humanemulator.blogspot.com//.
* **Название окна** - поле для ввода значения текста заголовка окна программы. При вводе можно использовать так называемые псевдостроки, вместо которых в заголовок будут подставляться текущие значения:
* %%PORT%% - порта, на котором работает программа,
* %%VER%% - номера версии программы,
* %%UNICODE%% - unicode или не unicode версия программы программы
* Галочка **Сбрасывать активный браузер при остановке скрипта** отвечает за возврат фокуса на закладку встроенного браузера по умолчанию, если скрипт был остановлен вручную. Если галочка выключена, активной останется последняя использовавшаяся закладка.
* Галочка **Загружать последнюю открытую страницу при старте программы** полностью соответствует своему названию. По умолчанию выключена. При включении деактивирует строку **Стартовать с**.
* Галочка **Скрывать при старте в трей** запускает программу в трее, не мешая пользователю заниматься другими делами. Полезна для сложных скриптов многопоточной версии программы, где требуются периодические перезапуски.
* Галочка **Сворачивать в трей** тоже полезна для многопоточной версии программы, чтобы не захламлять панель задач множеством одинаковых закладок.
* Галочка **Уведомлять миганием о скриптовых сообщениях** работает только для свёрнутых в панель задач копий программы. При включённых уведомлениях, если программа заканчивает работу, натыкается на диалог, требующий участия пользователя, и т.д., плашка программы в панели задач начинает мигать, привлекая внимание пользователя.
* Галочка **Уведомлять о новой версии программы при старте** отвечает за сверку версии текущей программы и находящейся на сервере разработчиков. В случае несовпадения появится предложение скачать последнюю версию. Конечно, при отсутствии надобности в этом деле, галочку можно снять.
* Галочка **Запрещать использование прокси при остановке скрипта** отвечает за возвращение настроек прокси ИЕ и программы к первоначальным, если скрипт был остановлен. По умолчанию включена. Если отключить, поставленные программой настройки прокси могут остаться и вызвать несколько минут недоумения вроде "Эй, что с моим интернетом?"
* Галочка **Загружать последнюю открытую страницу при старте программы** при выборе этой галочки в программе при её старте будет открываться последняя открытая на момент выхода из программы страница.
* Галочка **Спрашивать об изменении порта** отвечает за появление диалогов, предлагающих пользователю сменить номер порта. Например, если есть различия между портом в скрипте и в настройках программы.
* Галочка **Спрашивать при изменении скрипта внешним редактором** отвечает за появление диалогов, предлагающих пользователю перезагрузить скрипт в программу. Обычно это бывает если файл скрипта, открытого в программе, был каким-либо образом изменён вне её.
* Галочка **Спрашивать о переходе на следующий порт** отвечает за появление диалогов, предлагающих пользователю перевести программу на работу со следующим портом. Обычно это происходит в случаях, когда текущий порт занят каким-то иным приложением или другой запущенной копией XHE.
* Галочка **Иконка в трее** отображает иконку программы в системном лотке (трее) даже в том случае, если галочка **Сворачивать в трей** не активирована.
* Галочка **Вопрос о рестарте XHE после утечек** отображает диалоговое окно с вопросом о перезапуске программы в связи с нехваткой оперативной памяти для её работы.
* Галочка **Вопрос о перезапуске XHE и скрипта после утечек** отображает диалоговое окно с вопросом о перезапуске программы вместе с выполняемым скриптом в связи с нехваткой оперативной памяти для её работы.
* Галочка **Вопрос о закрытии XHE после утечек** отображает диалоговое окно с вопросом о закрытии программы в связи с нехваткой оперативной памяти для её работы.
* Кнопка **Всё по умолчанию** выставляет все значения вкладки по умолчанию.
===== Браузер=====
{{ wiki:settings_browser_xhe.jpg }}
Закладка //Браузер// служит для установки настроек встроенного в программу браузера.
* Галочка **Разрешить рисунки** отвечает за отображение во встроенном браузере рисунков
* Галочка **Разрешить Java скрипт** отвечает за использование во встроенном браузере Java-скриптов
* Галочка **Разрешить ActiveX** отвечает за использование во встроенном браузере элементов ActiveX
* Галочка **Разрешить Видео** отвечает за подгрузку и проигрывание видео во встроенном браузере
* Галочка **Разрешить Звуки** отвечает за проигрывание во встроенном браузере любых звуковых файлов
* Галочка **Разрешить Java** отвечает за использование встроенным браузером любых Java элементов (Не путать с Javascript)
* Галочка **Разрешить Фреймы** отвечает за подгрузку и работу встроенного браузера с фреймами и их элементами
* Галочка **Разрешить PopUp** отвечает за подгрузку и работу встроенного браузера со всплывающими окнами. Если включено, всплывающие окна будут открываться в новых закладках.
* Галочка **Включить тихий режим** выключает звуки и видео, игнорирует ошибки сценариев и попапы. В общем, заставляет программу работать тихо и не взирая ни на что.
* Галочка **Разрешить использование кэша** позволяет программе хранить кэш файлы, полученные в процессе работы. В случае выключения, кэш полностью очищается при перезапуске программы.
* Галочка **Разрешить DOM хранилище** позволяет программе использовать DOM хранилище для хранения информации, полученной в процессе работы.
* Галочка **Разрешить общий кэш и куки**. При выборе этой галочки все копии XHE используют общие папки кэша и куков.
* Галочка **Запретить сообщения скриптов** выключает сообщения скриптов сайтов о возникновении каких-либо проблем. Весьма полезно, так как зачастую такие сообщения блокируют возможность работы с сайтом до нажатия **Ок**.
* Галочка **Отключить диалог загрузки файлов** запрещает возникновения стандартных диалогов, предлагающих загрузку файлов. Для автоматизации загрузки есть соответствующие функции, где диалоги не требуются.
* Галочка **Отключить сообщения браузера** запрещает возникновения окон из разряда **Страница использует частичное шифрование** или **Отправляемые вами данные могут быть доступны другим пользователям**.
* Галочка **Запретить сообщения проблем безопасности** запрещает возникновения окон вроде **Сертификат страницы устарел**
* Галочки **Разрешить WebSocket**. Протокол WebSocket («веб-сокет»), описанный в спецификации RFC 6455, обеспечивает возможность обмена данными между браузером и сервером через постоянное соединение. Данные передаются по нему в обоих направлениях в виде «пакетов», без разрыва соединения и дополнительных HTTP-запросов.
* Галочка **Разрешить Callback**
* Галочка ** Разрешить просмотр JSON** включает/отключает режим, позволяющий просматривать JSON код в браузере.
* Галочка ** Отрисовка картинок через DirectX** включает/отключает режим, в котором DirectX будет использоваться для рисования изображений (требуется перезапуск программы для применения).
* Галочка ** Отрисовка страницы через GPU** включает / отключает режим, в котором графический процессор будет использоваться для рендеринга страницы (требуется перезапуск программы для применения).
* В меню **Модель браузера** можно выбрать версию ИЕ, под которую будут формироваться страницы во встроенном браузере.
* В строке **Текущий прокси(не сохраняется)** можно проверить и/или изменить текущий прокси, через который работает внутренний браузер. При закрытии программы данная настройка сбрасывается автоматически.
* В строке **Задать строку User-Agent по умолчанию** можно задать параметры Юзер-Агента, которые встроенный браузер будет отправлять всем посещаемым сайтам.
* Кнопка **Копировать как PHP код** закидывает в буфер обмена все сделанные настройки в виде PHP кода. При вызове скрипта с этим кодом все настройки закладки **Браузер** придут в текущий вид вне зависимости от того, какими были до этого.
* Кнопка **Всё по умолчанию** выставляет все значения вкладки по умолчанию.
===== Макрос =====
{{ wiki:settings_macros_xhe.jpg }}
Вкладка диалога настроек //Макрос// содержит настройки для работы с Макросом. [[https://xn--80awbbeioodeq4h3a.xn--p1ai/blog/%d0%b7%d0%b0%d0%bf%d0%b8%d1%81%d1%8c-%d0%b4%d0%b5%d0%b9%d1%81%d1%82%d0%b2%d0%b8%d0%b9-%d0%bf%d0%be%d0%bb%d1%8c%d0%b7%d0%be%d0%b2%d0%b0%d1%82%d0%b5%d0%bb%d1%8f-%d0%b2-%d0%b1%d1%80%d0%b0%d1%83%d0%b7/|Детально про Макрос можно узнать в нашем блоге]]. Принцип работы Макроса одинаков для всех версий программы.
Вкладка содержит следующие настройки:
* Галочка **Добавлять set focus к щелчку** включает/выключает режим программы, в котором при записи действий в Макросе к действую клика будет добавляться команда focus, которая задаёт фокус на элемент перед кликом на него.
* Галочка **Добавлять mouse move к щелчку** включает/выключает режим программы, в котором при записи действий в Макросе к действую клика будет добавляться команда send_mouse_move, которая выполняет событие перемещение курсора мыши на элемент перед кликом на него.
* Галочка **Добавлять ожидание к щелчку** включает/выключает режим программы, в котором при записи действий в Макросе к действую клика будет добавляться команда sleep(1), которая выполняет паузу в одну секунду после выполнения клика на элементе.ъ
* Галочка **Полная эмуляции мыши** включает/выключает режим программы, в котором при записи действий в Макросе будет использовать реальный курсор мыши. [[https://xn--80awbbeioodeq4h3a.xn--p1ai/blog/%d0%b0%d0%b2%d1%82%d0%be%d0%ba%d0%bb%d0%b8%d0%ba%d0%b5%d1%80-%d0%b4%d0%bb%d1%8f-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%b0/|Детально про эмуляцию реальной мыши и передачу событий читайте в нашем блоге]].
* Галочка **Полная эмуляции клавиатуры** включает/выключает режим программы, в котором при записи действий в Макросе используется реальная клавиатура. [[https://xn--80awbbeioodeq4h3a.xn--p1ai/blog/%d0%b0%d0%b2%d1%82%d0%be%d0%ba%d0%bb%d0%b8%d0%ba%d0%b5%d1%80-%d0%b4%d0%bb%d1%8f-%d0%b1%d1%80%d0%b0%d1%83%d0%b7%d0%b5%d1%80%d0%b0/|Детально про эмуляцию реальной клавиатуры и передачу событий читайте в нашем блоге]].
* Поле **Время перемещения мыши (с)** используется для установки времени перемещения мыши между кликами в секундах.
* Поле **Дрожание мыши** используется для установки колебаний курсора мыши при его перемещении в пикселях.
* Поле **Таймаут записи команд макроса (мс)** используется для установки пауз при записи команд макроса в миллисекундах.
* Группа галочек **Отлавливать События** включает/выключает режимы программы, в котором при записи действий в Макросе записываются события от **Мыши**, **Клавиатуры** и события **Клика по элементу** соответственно выбранным галочкам.
* Группа кнопок выбора **Создавать функции** включает/выключает режим программы, в котором при записи действий в Макросе выставляется приоритетный параметр, через который программа работает с выбранным элементом. В зависимости от выбранного кнопки это **ID, Имя элемента, любой доступный Атрибут элемента, внутренний текст или внутренний html, номер элемента**. Если у элемента нет выбранного параметра программа ищет первый доступный параметр, через который можно определить элемент. То есть срабатывает вариант **Автоматически**.
* Галочка **Создавать новый скрипт** включает/выключает режим программы, в котором при начале записи действий с помощью Макроса будет создавать новый скрипт. Если галочка отключена записываемые Макросом команды будут добавляться в текущий открытый скрипт.
* Кнопка **Всё по умолчанию** выставляет все значения вкладки по умолчанию.
===== Редактор =====
{{ wiki:settings_editor_xhe.jpg }}
Вкладка диалога настроек //Редактор// используется для настройки //Редактора скриптов//.
Вкладка содержит следующие настройки:
* Поле выбора **Выбрать стиль для редактирования** содержит список операторов стили, которых можно редактировать с помощью кнопок выбора цвета **Цвет Текста**,**Задний фон** и **Фон редактора**, а также с помощью кнопки выбора **Шрифт...**.
* Кнопка **Задать слова** используется для добавления в список операторов любых слов. После добавления эти слова будут подсвечиваться в скрипте как операторы.
* Галочка **Показать нумерацию строк** включает/выключает режим, в котором программа отображает в панеле Редактор скриптов нумерацию строк.
* Галочка **Показать регион** включает/выключает режим, в котором программа отображает панель для сворачивания цельных кусков кода, таких как тело операторов или функций.
* Галочка **Показывать отступы** отвечает за отображение отступов спецсимволами. По умолчанию выключена, так как отступы и их количество зачастую проще определять "на глаз".
* Галочка **Показать концы строк** отвечает за отображение окончаний строк скрипта спецсимволом. По умолчанию выключена.
* Галочка **Показать пустое место** более наглядно отображает пробелы в коде. Из-за незаметного лишнего пробела порой приходится изрядно повозиться с отладкой скрипта. Включение этой галочки такие ситуации исключит полностью.
* Если выключить галочку **Перегружать файлы, изменённые внешним редактором**, изменения в этих файлах будут игнорироваться. Когда галочка включена, программа выдаёт диалог с предупреждением и вариантами выбора.
* От галочки **Использовать UTF-8** зависит кодировка скрипта. По умолчанию используется ANSI, но при необходимости это можно изменить.
* Галочка **Сохранять скрипт перед выполнением** по умолчанию включена и делает именно то, что указано в описании. После отключения запускаемые скрипты никак не изменяют оригинал, если в них были сделаны какие-либо правки.
===== Логи =====
{{ wiki:settings_logs_xhe.jpg }}
Вкладка диалога настроек //Логи// служит для настройки логов работы программы.
Вкладка содержит следующие настройки:
* Галочка **Разрешить Online Справку** отвечает за переходы на страницу справки, если сделан правый клик по дереву примеров. Если отключено, переход не выполняется.
* Галочка **Автоскролировать панели вывода** включает/выключает режим работы программы, в котором автоматически перелистывается вывод логов в нижней панели Отладка.
* Галочка **Вести RAW лог** отвечает за перехват и вывод в окно RAW лога всего обмена данными между сервером и браузером. Рекомендуется использовать с осторожностью, так как это крайне ресурсоёмкий процесс. По умолчанию выключено.
* Галочки **Показывать ответы сервера** и **Показывать ответы браузера** отвечают за отображение в окне RAW лога определённых ответов. Если, к примеру, необходимо ловить только ответы сервера, отображать ответы браузера нет незачем.
* Галочка **Резервировать логи при старте** отвечает за создание при каждом запуске программы новых файлов логов. Старые переименовываются и остаются рядом, новые создаются пустыми.
* Галочка **Показывать Совет Дня при запуске** отвечает именно за появление при запуске программы окошка с советом дня. Правда, самих советов там нет ещё. Задел на светлое будущее.
* Галочка **Показывать Акции и Скидки** отвечает за появление при запуске программы окошка, информирующем пользователя о текущих акциях и скидках, связанных с программой Human Emulator.
* Галочка **Разрешить лог команд** отвечает за ведение программой лога принимаемых команд (с параметрами) и результатов их выполнения. Файл лога сохраняется в папке, к качестве названия которой выступает номер порта, на котором работала программа. Сама эта папка находится в корневом каталоге программы. В случае каких-либо проблем с программой, найти причину проще всего по логам.
* Галочка **Разрешить лог** отвечает за ведение программой лога происходящих с ней событий, отъедаемой памяти и используемых ресурсов. Файл лога сохраняется в папке, к качестве названия которой выступает номер порта, на котором работала программа. Сама эта папка находится в корневом каталоге программы.
* Галочка **Вести лог шедулера** отвечает за ведение программой лога запускаемых через расписание задач скриптов, время их исполнения и результата.
* Галочки **Очищать лог ../ /.. при старте** отвечают именно за это. Старые логи удаляются, новые и пустые создаются. Если логи ведутся постоянно, то могут разрастись до весьма тяжёлого состояния. Эти настройки будут поддерживать их в форме.
* В поле **Кодировка окна отладки** можно вписать кодировку, через которую будет пропускаться весь отображаемый в окне отладки текст. Весьма полезно при работе, к примеру, с китайскими сайтами.
* В поле **Очистить окна отладки после** можно вписать максимальное количество символов, которые будет отображать (и следовательно держать в памяти) программа в окне отладки. Хоть это и крошечные потери производительности, при непрерывной работы и спаме в отладку процесс может изрядно замедлиться.