Русский

Справочник MQL4 Константы, перечисления и структуры Состояние окружения Состояние клиентского терминала

Состояние клиентского терминала

Идентификаторы для получения информации о клиентском терминале функциями TerminalInfoInteger() и TerminalInfoString(). В качестве параметра эти функции принимают значения из перечислений ENUM_TERMINAL_INFO_INTEGER и ENUM_TERMINAL_INFO_STRING соответственно.

ENUM_TERMINAL_INFO_INTEGER

Идентификатор

Описание

Тип свойства

TERMINAL_BUILD

Номер билда запущенного терминала

int

TERMINAL_COMMUNITY_ACCOUNT

Флаг наличия авторизационных данных MQL5.community в терминале

bool

TERMINAL_COMMUNITY_CONNECTION

Наличие подключения к MQL5.community

bool

TERMINAL_CONNECTED

Наличие подключения к торговому серверу

bool

TERMINAL_DLLS_ALLOWED

Разрешение на использование DLL

bool

TERMINAL_TRADE_ALLOWED

Разрешение на торговлю

bool

TERMINAL_EMAIL_ENABLED

Разрешение на отправку писем с использованием SMTP-сервера и логина,указанных в настройках терминала

bool

TERMINAL_FTP_ENABLED

Разрешение на отправку отчетов по FTP на указанный сервер для указанного в настройках терминала торгового счета

bool

TERMINAL_NOTIFICATIONS_ENABLED

Разрешение на отправку уведомлений на смартфон

bool

TERMINAL_MAXBARS

Максимальное количество баров на графике

int

TERMINAL_MQID

Флаг наличия MetaQuotes ID для отправки Push-уведомлений

bool

TERMINAL_CODEPAGE

Номер кодовой страницы языка, установленного в клиентском терминале

int

TERMINAL_CPU_CORES

Количество процессоров в системе

int

TERMINAL_DISK_SPACE

Объем свободной памяти на диске для папки MQL4\Files терминала, в Mb

int

TERMINAL_MEMORY_PHYSICAL

Размер физической памяти в системе, в Mb

int

TERMINAL_MEMORY_TOTAL

Размер памяти, доступной процессу терминала, в Mb

int

TERMINAL_MEMORY_AVAILABLE

Размер свободной памяти процесса терминала в Mb

int

TERMINAL_MEMORY_USED

Размер памяти, использованной терминалом, в Mb

int

TERMINAL_SCREEN_DPI

Разрешающая способность вывода информации на экран измеряется в количестве точек на линейный дюйм поверхности (DPI).

Знание этого параметра позволяет задавать размеры графических объектов таким образом, чтобы они выглядели одинаково на мониторах с различной разрешающей способностью.

int

TERMINAL_PING_LAST

Последнее известное значение пинга до торгового сервера в микросекундах. В одной секунде миллион микросекунд.

int

Идентификатор клавиши

Описание

 

TERMINAL_KEYSTATE_LEFT

Состояние клавиши "Стрелка влево"

int

TERMINAL_KEYSTATE_UP

Состояние клавиши "Стрелка вверх"

int

TERMINAL_KEYSTATE_RIGHT

Состояние клавиши "Стрелка вправо"

int

TERMINAL_KEYSTATE_DOWN

Состояние клавиши "Стрелка вниз"

int

TERMINAL_KEYSTATE_SHIFT

Состояние клавиши "Shift"

int

TERMINAL_KEYSTATE_CONTROL

Состояние клавиши "Ctrl"

int

TERMINAL_KEYSTATE_MENU

Состояние клавиши "Windows"

int

TERMINAL_KEYSTATE_CAPSLOCK

Состояние клавиши "CapsLock"

int

TERMINAL_KEYSTATE_NUMLOCK

Состояние клавиши "NumLock"

int

TERMINAL_KEYSTATE_SCRLOCK

Состояние клавиши "ScrollLock"

int

TERMINAL_KEYSTATE_ENTER

Состояние клавиши "Enter"

int

TERMINAL_KEYSTATE_INSERT

Состояние клавиши "Insert"

int

TERMINAL_KEYSTATE_DELETE

Состояние клавиши "Delete"

int

TERMINAL_KEYSTATE_HOME

Состояние клавиши "Home"

int

TERMINAL_KEYSTATE_END

Состояние клавиши "End"

int

TERMINAL_KEYSTATE_TAB

Состояние клавиши "Tab"

int

TERMINAL_KEYSTATE_PAGEUP

Состояние клавиши "PageUp"

int

TERMINAL_KEYSTATE_PAGEDOWN

Состояние клавиши "PageDown"

int

TERMINAL_KEYSTATE_ESCAPE

Состояние клавиши "Escape"

int

Вызов TerminalInfoInteger(TERMINAL_KEYSTATE_XXX) возвращает такой же код состояния клавиши, как и функция GetKeyState() из MSDN.

 

Пример вычисления коэффициента масштабирования:

//--- создаём кнопку шириной 1.5 дюйма на экране
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // получим DPI монитора пользователя
int base_width = 144;                                      // базовая ширина в экранных точках для стандартных мониторов c DPI=96
int width      = (button_width * screen_dpi) / 96;         // вычислим ширину кнопки для монитора пользователя (с учётом его DPI)
...
 
//--- вычисление коэффициента масштабирования в процентах
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- использование коэффициента масштабирования
width=(base_width * scale_factor) / 100;

При таком использовании графический ресурс будет иметь одинаковый на глаз размер на мониторах с различной разрешающей способностью. При этом размеры управляющих элементов (кнопки, окна диалогов и т.д.) будут соответствовать настройкам персонализации.

 

ENUM_TERMINAL_INFO_DOUBLE

Идентификатор

Описание

Тип свойства

TERMINAL_COMMUNITY_BALANCE

Баланс пользователя в MQL5.community

double

 

Файловые операции можно проводить только в двух каталогах, пути к которым можно получить при запросе свойств TERMINAL_DATA_PATH и TERMINAL_COMMONDATA_PATH.

ENUM_TERMINAL_INFO_STRING

Идентификатор

Описание

Тип свойства

TERMINAL_LANGUAGE

Язык терминала

string

TERMINAL_COMPANY

Имя компании

string

TERMINAL_NAME

Имя терминала

string

TERMINAL_PATH

Папка, из которой запущен терминал

string

TERMINAL_DATA_PATH

Папка, в которой хранятся данные терминала

string

TERMINAL_COMMONDATA_PATH

Общая папка всех клиентских терминалов, установленных на компьютере

string

Для лучшего понимания путей, хранящихся в свойствах параметров TERMINAL_PATH, TERMINAL_DATA_PATH и TERMINAL_COMMONDATA_PATH, рекомендуется выполнить скрипт, которых сообщит эти значения для данной копии терминала, установленного на вашем компьютере.

Пример: скрипт выводит информацию о путях терминала

//+------------------------------------------------------------------+
//|                                          Check_TerminalPaths.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print("TERMINAL_PATH = ",TerminalInfoString(TERMINAL_PATH));
   Print("TERMINAL_DATA_PATH = ",TerminalInfoString(TERMINAL_DATA_PATH));
   Print("TERMINAL_COMMONDATA_PATH = ",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
  }

В результате выполнения скрипта в Журнал Экспертов будут выведены сообщения,  подобные приведенным на рисунке ниже.

Получение информации о рабочей папке терминала