跳至内容

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文件夹的空闲磁盘空间,单位:MBint
TERMINAL_MEMORY_PHYSICAL系统中的物理内存,单位:MBint
TERMINAL_MEMORY_TOTAL终端进程可用的内存,单位:MBint
TERMINAL_MEMORY_AVAILABLE终端进程的空闲内存,单位:MBint
TERMINAL_MEMORY_USED终端使用的内存,单位:MBint
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_BALANCEMQL5.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中执行脚本的结果中,您将看到如下消息:

获取终端工作文件夹的数据

最后更新于