簡體   English   中英

在電子中無法獲取displayName

[英]Can't get displayName in the Electron

我正在使用https://electronjs.org/docs/api/screen#screengetalldisplays方法來獲取有關監視器的信息。 然后,此信息將轉到C ++應用程序,在此它嘗試通過ID匹配監視ID 問題在於,Electron提供的IDEnumDisplayDevicesA方法調用的結果不匹配。

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的顯示與Win API的顯示匹配?

正如您已經指出的,id來自電子的屏幕對象 它在內部使用Chromium的屏幕(請參閱#include "ui/display/screen.h" 。進一步挖掘之后,我發現id來自display_info.cc實現的第59行的方法。它只是生成的哈希值來自操作系統的設備名稱,即MonitorInfoEXA結構。

也許您可以重復他們對名稱進行的哈希處理,然后將其與ID匹配。

static_cast<int64_t>(base::Hash(base::WideToUTF8(device_name))

設備名稱是此struct中的 szDevice。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM