C ++ Erkennen Sie Grafikkartenanbieter für vernetzte Monitore, ohne dass der Crowd -Streik verrückt wird

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: C ++ Erkennen Sie Grafikkartenanbieter für vernetzte Monitore, ohne dass der Crowd -Streik verrückt wird

by Anonymous » 23 Apr 2025, 10:56

Für eine Windows 7/8/10/11 Software, die ich derzeit erstelle, muss ich alle verbundenen Monitore scannen und über DDC/CI (I²C) kommunizieren, um diejenigen zu erkennen, die von einem bestimmten Hersteller stammen. Dann mache ich einige Herstellerspezifische DDC/CI-Kommunikation mit stark bezahlten DDC/CI. Da Windows jedoch nicht nativ VCP -Tabellen -Lese- /VCP -Tabellenbefehlsbefehle und VCP -Funktionen unterstützt und die VCP -Set -Funktion bei der Iterierung der verbundenen Monitore schrecklich langsam sind, möchte ich feststellen, an welcher Grafikkarte ein Monitor angeschlossen ist. Einfach mit Windows -API: Verwenden Sie EnumDisplayMonitors , um alle Hmonitor zu erhalten, und für jede ITRETTEN Sie alle Display_Device mit EnumDisplayDevices bis Sie den für den DevizeName identisch für den Gerätenamen für den Hmonitor von getMonitorinfo (Hmonitor) BOOL {
MONITORINFOEX monitor_info = { };
monitor_info.cbSize = sizeof(MONITORINFOEX);
if (GetMonitorInfo(hMonitor, &monitor_info) == 0) return TRUE;
std::wstring monitor_name = monitor_info.szDevice;
DISPLAY_DEVICE display_device = { };
display_device.cb = sizeof(DISPLAY_DEVICE);
for (DWORD index = 0; EnumDisplayDevices(nullptr, index, &display_device, 0); ++index) {
std::wstring device_name = display_device.DeviceName;
if (device_name == monitor_name) {
std::wstring device_id = display_device.DeviceID;
if (device_id.find(L"VEN_10DE") != std::wstring::npos) std::cout

Top