首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法获取displayName的电子信息

无法获取displayName的电子信息
EN

Stack Overflow用户
提问于 2019-04-06 03:47:44
回答 1查看 375关注 0票数 1

我正在使用https://electronjs.org/docs/api/screen#screengetalldisplays方法来获取有关监视器的信息。然后,此信息将发送到C++应用程序,在那里它会尝试匹配ID的监视器。问题是,Electron给出的IDEnumDisplayDevicesA方法调用的结果不匹配。

代码语言:javascript
运行
复制
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"

所以电子ID和EnumDisplayDevicesA提供的任何ID都不匹配。有没有可能使Electron display与Win API display相匹配?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-28 06:02:45

正如您已经指出的,id来自electron's screen object。它在内部使用Chromium的屏幕(参见#include "ui/display/screen.h"。在深入研究之后,我发现id来自display_info.cc实现的第59行的方法。它只是根据来自操作系统的设备名称生成的散列,即从MonitorInfoEXA结构生成的散列。

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

代码语言:javascript
运行
复制
static_cast<int64_t>(base::Hash(base::WideToUTF8(device_name))

其中,设备名称是来自this struct的szDevice。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55542435

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档