2021.03.23 14:33:50.492 array out of range in 'SMBIOS.mqh' (170,8)
fxsaber:
似乎给出了一个不同的字段数量。试着做一个有余量的数组,看看它是否移出。转载了SMBIOS.mqh。
PS:就像我说的,只在一台电脑上测试。无法接触到其他人。所以不要遗憾。
附加的文件:
SMBIOS.mqh
5 kb
Edgar Akhmadeev:
如何让它在这里看起来漂亮。
template <typename T> T StringToInteger2( const string Str ) { T Res = 0; // const int Size = MathMin(StringLen(Str), sizeof(T)); const int Size = StringLen(Str); for (int i = 0; i < Size; i++) Res = (Res << 8) + Str[i]; return(Res); } //const uint SMBIOS_signature = 'RSMB'; const uint SMBIOS_signature = StringToInteger2<uint>("RSMB");
Edgar Akhmadeev:
似乎给出了一个不同的字段数量。试着做一个有余量的数组,看看它是否会移动掉。转载了SMBIOS.mqh。
2021.03.23 14:49:24.516 Location in chassis: 2021.03.23 14:49:24.516 array out of range in 'SMBIOS.mqh' (192,24)
fxsaber:
谢谢你。美丽,但不知何故是多余的。我希望它没有可执行的代码。
Win7 x64
它起作用了,我需要把它附在4号机上。
未登录账户时也能工作。
2021.03.23 15:40:24.109 终端 Windows 7 Service Pack 1 build 7601, Intel Core i3-3220 @ 3.30GHz, 0 / 7 Gb内存, 11 / 298 Gb磁盘, IE 11, UAC, GMT+3
FM 0 15:51:26.042 Test_SMBIOS (USDSEK,M1) System Management BIOS Version: 2.7 GF 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) System BIOS Version: 4.6 RM 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) Embedded Controller Firmware Version: 255.255 LJ 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) BIOS Vendor: American Megatrends Inc. QN 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) BIOS Version: V1.6 DI 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) BIOS Release Date: 04/17/2012 RE 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) UUID: {0000-00-00-00-8 c89a5ffbfb6} FL 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) System Manufacturer: MSI DE 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) Product Name: MS-7788 QR 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) Product Version: 1.0 KK 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) Product Serial Number: To be filled by O.E.M. ON 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) SKU Number: To be filled by O.E.M. KH 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) Family: To be filled by O.E.M. FH 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) Mainboard Manufacturer: MSI OL 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) Mainboard Name: H61M-P20 (G3) (MS-7788) ED 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) Mainboard Version: 1.0 KM 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) Mainboard Serial Number: To be filled by O.E.M. EN 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) Asset Tag: To be filled by O.E.M. CI 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) Location in chassis: To be filled by O.E.M. MP 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) {0000-00-00-00-8 c89a5ffbfb6} EH 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) To be filled by O.E.M. IP 0 15:51:26.043 Test_SMBIOS (USDSEK,M1) To be filled by O.E.M.
Edgar Akhmadeev:
另一项更正。
Vitaly Muzichenko:
Win7 x64
那是所有的输出吗?
编写代码,从SMBIOS读取硬件信息(主板和平台)。当然,使用的是WinAPI。可用于将产品与硬件绑定。在我看来,与主板以外的任何东西绑定都没有意义。驱动器、显卡是可变的。
将SMBIOS.mqh放入Include。
测试SMBIOS.mq5 - 脚本中。
在实际使用中,当你不需要不必要的信息时,就把它注释掉/不要定义 #define SMBIOS_DEBUG
我只在一台笔记本电脑和VPS上测试过,如果不能正常工作,需要验证和报告。根据hwinfo 程序检查数据。
1.该代码假设来自SMBIOS的数据是以固定的顺序输出的。因此,如果有不一致的地方,建议从主板/SMBIOS DMI树的BIOS、System、Mainboard和System enclosure标签中给出完整的测试输出和hwinfo的屏幕截图。否则我将无法进行调试。
2.需要手机程序员提供一些建议,如何让它在这里看起来不错。