Client Terminal Properties
客户端终端属性
关于客户端终端的信息可以通过两个函数获取: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数据 | bool |
| TERMINAL_CODEPAGE | 客户端终端中安装的语言代码页编号 | int |
| TERMINAL_CPU_CORES | 系统中的CPU核心数量 | 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 | 对交易服务器最后一次已知的ping值,单位:微秒。一秒包含一百万微秒 | 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)返回的关键状态代码与MSDN中的GetKeyState()函数返回的状态代码相同。
缩放因子计算示例:
//--- Creating a 1.5 inch wide button on a screen
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // Find DPI of the user monitor
int base_width = 144; // The basic width in the screen points for standard monitors with DPI=96
int width = (button_width * screen_dpi) / 96; // Calculate the button width for the user monitor (for the specific DPI)
...
//--- Calculating the scaling factor as a percentage
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96;
//--- Use of the scaling factor
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));
}在Experts Journal中执行脚本的结果中,您将看到如下消息:

最后更新于