225 lines
10 KiB
MQL5
225 lines
10 KiB
MQL5
//+------------------------------------------------------------------+
| |||
//| TerminalInfo.mqh |
| |||
//| Copyright 2000-2025, MetaQuotes Ltd. |
| |||
//| https://www.mql5.com |
| |||
//+------------------------------------------------------------------+
| |||
#include <Object.mqh>
| |||
//+------------------------------------------------------------------+
| |||
//| Class CTerminalInfo. |
| |||
//| Appointment: Class for access to terminal info. |
| |||
//| Derives from class CObject. |
| |||
//+------------------------------------------------------------------+
| |||
class CTerminalInfo : public CObject
| |||
{
| |||
public:
| |||
CTerminalInfo(void);
| |||
~CTerminalInfo(void);
| |||
//--- fast access methods to the integer terminal propertyes
| |||
int Build(void) const;
| |||
bool IsConnected(void) const;
| |||
bool IsDLLsAllowed(void) const;
| |||
bool IsTradeAllowed(void) const;
| |||
bool IsEmailEnabled(void) const;
| |||
bool IsFtpEnabled(void) const;
| |||
int MaxBars(void) const;
| |||
int CodePage(void) const;
| |||
int CPUCores(void) const;
| |||
int MemoryPhysical(void) const;
| |||
int MemoryTotal(void) const;
| |||
int MemoryAvailable(void) const;
| |||
int MemoryUsed(void) const;
| |||
bool IsX64(void) const;
| |||
int OpenCLSupport(void) const;
| |||
int DiskSpace(void) const;
| |||
//--- fast access methods to the string terminal propertyes
| |||
string Language(void) const;
| |||
string Name(void) const;
| |||
string Company(void) const;
| |||
string Path(void) const;
| |||
string DataPath(void) const;
| |||
string CommonDataPath(void) const;
| |||
//--- access methods to the API MQL5 functions
| |||
long InfoInteger(const ENUM_TERMINAL_INFO_INTEGER prop_id) const;
| |||
string InfoString(const ENUM_TERMINAL_INFO_STRING prop_id) const;
| |||
};
| |||
//+------------------------------------------------------------------+
| |||
//| Constructor |
| |||
//+------------------------------------------------------------------+
| |||
CTerminalInfo::CTerminalInfo(void)
| |||
{
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Destructor |
| |||
//+------------------------------------------------------------------+
| |||
CTerminalInfo::~CTerminalInfo(void)
| |||
{
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_BUILD" |
| |||
//+------------------------------------------------------------------+
| |||
int CTerminalInfo::Build(void) const
| |||
{
| |||
return((int)TerminalInfoInteger(TERMINAL_BUILD));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_CONNECTED" |
| |||
//+------------------------------------------------------------------+
| |||
bool CTerminalInfo::IsConnected(void) const
| |||
{
| |||
return((bool)TerminalInfoInteger(TERMINAL_CONNECTED));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_DLLS_ALLOWED" |
| |||
//+------------------------------------------------------------------+
| |||
bool CTerminalInfo::IsDLLsAllowed(void) const
| |||
{
| |||
return((bool)TerminalInfoInteger(TERMINAL_DLLS_ALLOWED));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_TRADE_ALLOWED" |
| |||
//+------------------------------------------------------------------+
| |||
bool CTerminalInfo::IsTradeAllowed(void) const
| |||
{
| |||
return((bool)TerminalInfoInteger(TERMINAL_TRADE_ALLOWED));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_EMAIL_ENABLED" |
| |||
//+------------------------------------------------------------------+
| |||
bool CTerminalInfo::IsEmailEnabled(void) const
| |||
{
| |||
return((bool)TerminalInfoInteger(TERMINAL_EMAIL_ENABLED));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_FTP_ENABLED" |
| |||
//+------------------------------------------------------------------+
| |||
bool CTerminalInfo::IsFtpEnabled(void) const
| |||
{
| |||
return((bool)TerminalInfoInteger(TERMINAL_FTP_ENABLED));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_MAXBARS" |
| |||
//+------------------------------------------------------------------+
| |||
int CTerminalInfo::MaxBars(void) const
| |||
{
| |||
return((int)TerminalInfoInteger(TERMINAL_MAXBARS));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_CODEPAGE" |
| |||
//+------------------------------------------------------------------+
| |||
int CTerminalInfo::CodePage(void) const
| |||
{
| |||
return((int)TerminalInfoInteger(TERMINAL_CODEPAGE));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_CPU_CORES" |
| |||
//+------------------------------------------------------------------+
| |||
int CTerminalInfo::CPUCores(void) const
| |||
{
| |||
return((int)TerminalInfoInteger(TERMINAL_CPU_CORES));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_MEMORY_PHYSICAL" |
| |||
//+------------------------------------------------------------------+
| |||
int CTerminalInfo::MemoryPhysical(void) const
| |||
{
| |||
return((int)TerminalInfoInteger(TERMINAL_MEMORY_PHYSICAL));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_MEMORY_TOTAL" |
| |||
//+------------------------------------------------------------------+
| |||
int CTerminalInfo::MemoryTotal(void) const
| |||
{
| |||
return((int)TerminalInfoInteger(TERMINAL_MEMORY_TOTAL));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_MEMORY_AVAILABLE" |
| |||
//+------------------------------------------------------------------+
| |||
int CTerminalInfo::MemoryAvailable(void) const
| |||
{
| |||
return((int)TerminalInfoInteger(TERMINAL_MEMORY_AVAILABLE));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_MEMORY_USED" |
| |||
//+------------------------------------------------------------------+
| |||
int CTerminalInfo::MemoryUsed(void) const
| |||
{
| |||
return((int)TerminalInfoInteger(TERMINAL_MEMORY_USED));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_X64" |
| |||
//+------------------------------------------------------------------+
| |||
bool CTerminalInfo::IsX64(void) const
| |||
{
| |||
return((bool)TerminalInfoInteger(TERMINAL_X64));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_OPENCL_SUPPORT" |
| |||
//+------------------------------------------------------------------+
| |||
int CTerminalInfo::OpenCLSupport(void) const
| |||
{
| |||
return((int)TerminalInfoInteger(TERMINAL_OPENCL_SUPPORT));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_DISK_SPACE" |
| |||
//+------------------------------------------------------------------+
| |||
int CTerminalInfo::DiskSpace(void) const
| |||
{
| |||
return((int)TerminalInfoInteger(TERMINAL_DISK_SPACE));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_LANGUAGE" |
| |||
//+------------------------------------------------------------------+
| |||
string CTerminalInfo::Language(void) const
| |||
{
| |||
return(TerminalInfoString(TERMINAL_LANGUAGE));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_NAME" |
| |||
//+------------------------------------------------------------------+
| |||
string CTerminalInfo::Name(void) const
| |||
{
| |||
return(TerminalInfoString(TERMINAL_NAME));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_COMPANY" |
| |||
//+------------------------------------------------------------------+
| |||
string CTerminalInfo::Company(void) const
| |||
{
| |||
return(TerminalInfoString(TERMINAL_COMPANY));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_PATH" |
| |||
//+------------------------------------------------------------------+
| |||
string CTerminalInfo::Path(void) const
| |||
{
| |||
return(TerminalInfoString(TERMINAL_PATH));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_DATA_PATH" |
| |||
//+------------------------------------------------------------------+
| |||
string CTerminalInfo::DataPath(void) const
| |||
{
| |||
return(TerminalInfoString(TERMINAL_DATA_PATH));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Get the property value "TERMINAL_COMMONDATA_PATH" |
| |||
//+------------------------------------------------------------------+
| |||
string CTerminalInfo::CommonDataPath(void) const
| |||
{
| |||
return(TerminalInfoString(TERMINAL_COMMONDATA_PATH));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Access functions AccountInfoInteger(...) |
| |||
//+------------------------------------------------------------------+
| |||
long CTerminalInfo::InfoInteger(const ENUM_TERMINAL_INFO_INTEGER prop_id) const
| |||
{
| |||
return(TerminalInfoInteger(prop_id));
| |||
}
| |||
//+------------------------------------------------------------------+
| |||
//| Access functions AccountInfoString(...) |
| |||
//+------------------------------------------------------------------+
| |||
string CTerminalInfo::InfoString(const ENUM_TERMINAL_INFO_STRING prop_id) const
| |||
{
| |||
return(TerminalInfoString(prop_id));
| |||
}
| |||
//+------------------------------------------------------------------+
|