95 lines
4.6 KiB
MQL5
95 lines
4.6 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| sysinfoapi.mqh |
|
|
//| Copyright 2000-2025, MetaQuotes Ltd. |
|
|
//| https://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
#include <WinAPI\windef.mqh>
|
|
#include <WinAPI\winbase.mqh>
|
|
|
|
//---
|
|
enum COMPUTER_NAME_FORMAT
|
|
{
|
|
ComputerNameNetBIOS,
|
|
ComputerNameDnsHostname,
|
|
ComputerNameDnsDomain,
|
|
ComputerNameDnsFullyQualified,
|
|
ComputerNamePhysicalNetBIOS,
|
|
ComputerNamePhysicalDnsHostname,
|
|
ComputerNamePhysicalDnsDomain,
|
|
ComputerNamePhysicalDnsFullyQualified,
|
|
ComputerNameMax
|
|
};
|
|
//---
|
|
struct DUMMYSTRUCTNAME
|
|
{
|
|
uint dwOemId;
|
|
ushort wProcessorArchitecture;
|
|
ushort wReserved;
|
|
};
|
|
//---
|
|
struct MEMORYSTATUSEX
|
|
{
|
|
uint dwLength;
|
|
uint dwMemoryLoad;
|
|
ulong ullTotalPhys;
|
|
ulong ullAvailPhys;
|
|
ulong ullTotalPageFile;
|
|
ulong ullAvailPageFile;
|
|
ulong ullTotalVirtual;
|
|
ulong ullAvailVirtual;
|
|
ulong ullAvailExtendedVirtual;
|
|
};
|
|
//---
|
|
struct SYSTEM_INFO
|
|
{
|
|
uint dwOemId;
|
|
uint dwPageSize;
|
|
PVOID lpMinimumApplicationAddress;
|
|
PVOID lpMaximumApplicationAddress;
|
|
ulong dwActiveProcessorMask;
|
|
uint dwNumberOfProcessors;
|
|
uint dwProcessorType;
|
|
uint dwAllocationGranularity;
|
|
ushort wProcessorLevel;
|
|
ushort wProcessorRevision;
|
|
};
|
|
//+------------------------------------------------------------------+
|
|
//| |
|
|
//+------------------------------------------------------------------+
|
|
#import "kernel32.dll"
|
|
int GlobalMemoryStatusEx(MEMORYSTATUSEX &buffer);
|
|
void GetSystemInfo(SYSTEM_INFO &system_info);
|
|
void GetSystemTime(SYSTEMTIME &system_time);
|
|
void GetSystemTimeAsFileTime(FILETIME &system_time_as_file_time);
|
|
void GetLocalTime(SYSTEMTIME &system_time);
|
|
uint GetVersion(void);
|
|
int SetLocalTime(const SYSTEMTIME &system_time);
|
|
uint GetTickCount(void);
|
|
ulong GetTickCount64(void);
|
|
int GetSystemTimeAdjustment(uint &time_adjustment,uint &time_increment,int &time_adjustment_disabled);
|
|
uint GetSystemDirectoryW(ushort &buffer[],uint size);
|
|
uint GetWindowsDirectoryW(ushort &buffer[],uint size);
|
|
uint GetSystemWindowsDirectoryW(ushort &buffer[],uint size);
|
|
int GetComputerNameExW(COMPUTER_NAME_FORMAT name_type,ushort &buffer[],uint &size);
|
|
int SetComputerNameExW(COMPUTER_NAME_FORMAT name_type,const string buffer);
|
|
int SetSystemTime(const SYSTEMTIME &system_time);
|
|
int GetVersionExW(OSVERSIONINFOW &version_information);
|
|
int GetLogicalProcessorInformation(SYSTEM_LOGICAL_PROCESSOR_INFORMATION &buffer[],uint &returned_length);
|
|
int GetLogicalProcessorInformationEx(LOGICAL_PROCESSOR_RELATIONSHIP relationship_type,SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX &buffer[],uint &returned_length);
|
|
void GetNativeSystemInfo(SYSTEM_INFO &system_info);
|
|
void GetSystemTimePreciseAsFileTime(FILETIME &system_time_as_file_time);
|
|
int GetProductInfo(uint os_major_version,uint os_minor_version,uint sp_major_version,uint sp_minor_version,uint &returned_product_type);
|
|
uint EnumSystemFirmwareTables(uint firmware_table_provider_signature,PVOID &firmware_table_enum_buffer,uint buffer_size);
|
|
uint EnumSystemFirmwareTables(uint firmware_table_provider_signature,uchar &firmware_table_enum_buffer[],uint buffer_size);
|
|
uint GetSystemFirmwareTable(uint firmware_table_provider_signature,uint firmware_table_id,PVOID firmware_table_buffer,uint buffer_size);
|
|
uint GetSystemFirmwareTable(uint firmware_table_provider_signature,uint firmware_table_id,uchar &firmware_table_buffer[],uint buffer_size);
|
|
int DnsHostnameToComputerNameExW(const string hostname,ushort &computer_name[],uint &size);
|
|
int GetPhysicallyInstalledSystemMemory(ulong &total_memory_in_kilobytes);
|
|
int SetComputerNameEx2W(COMPUTER_NAME_FORMAT name_type,uint flags,const string buffer);
|
|
int SetSystemTimeAdjustment(uint time_adjustment,int time_adjustment_disabled);
|
|
int InstallELAMCertificateInfo(HANDLE elam_file);
|
|
int GetProcessorSystemCycleTime(ushort group,PVOID &buffer,uint &returned_length);
|
|
int GetProcessorSystemCycleTime(ushort group,SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION &buffer[],uint &returned_length);
|
|
int SetComputerNameW(const string computer_name);
|
|
#import
|
|
//+------------------------------------------------------------------+
|