//+------------------------------------------------------------------+ //| sysinfoapi.mqh | //| Copyright 2000-2025, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #include #include //--- 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 //+------------------------------------------------------------------+