C++ Can';在电子表格中找不到displayName

C++ Can';在电子表格中找不到displayName,c++,node.js,electron,C++,Node.js,Electron,我正在使用此方法获取有关监视器的信息。然后,这些信息进入C++应用程序,试图通过“代码> ID 匹配监视器。问题是Electron提供的ID与EnumDisplayDevicesA方法调用的结果不匹配 Electron Display ID: 2528732444 C++ EnumDisplayDevicesA values: DeviceID: "PCI\\VEN_10DE&DEV_1B81&SUBSYS_33011462&REV_A1" DeviceKey: "\

我正在使用此方法获取有关监视器的信息。然后,这些信息进入C++应用程序,试图通过“代码> ID <代码>匹配监视器。问题是Electron提供的
ID
EnumDisplayDevicesA
方法调用的结果不匹配

Electron Display ID:  2528732444

C++ EnumDisplayDevicesA values:
DeviceID: "PCI\\VEN_10DE&DEV_1B81&SUBSYS_33011462&REV_A1"
DeviceKey: "\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Video\\{48210CD6-1F3B-11E9-9541-D05099833422}\\0000"
因此,Electron ID与
EnumDisplayDevicesA
提供的任何ID都不匹配。是否有任何可能的方法将Electron display与Win API display相匹配?

id来源于您已经指出的。它在内部使用Chromium的屏幕(请参见
#include“ui/display/screen.h”
。经过进一步挖掘,我发现id来自的实现第59行的方法。它只是从操作系统(即MonitorInfo Exa结构)中的设备名生成的哈希

也许你可以重复他们对名字所做的哈希,并将其与id匹配

static_cast<int64_t>(base::Hash(base::WideToUTF8(device_name))
static_cast(base::Hash(base::WideToUTF8(设备名称))
其中设备名称是szDevice的来源