Monitor Name auslesen

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Monitor Name auslesen

Beitrag von ts-soft »

Was soll ich da testen? Ich öffne die Nvidia-Systemsteuerung und schiebe meinen Monitor, so wie ich es gerne hätte und daraus ergeben sich auch die Werte. Das heißt, die ändern sich, ausser der Durchmesser.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Re: Monitor Name auslesen

Beitrag von SBond »

ts-soft hat geschrieben:Was soll ich da testen?
ach sorry. Ich war wieder zu langsam :mrgreen:. Das war für Hoto gedacht, damit der sehen kann, dass es auch mehreren Monitoren läuft.
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: Monitor Name auslesen

Beitrag von ts-soft »

Hab mal schnell 2 Fotos gemacht, um zu zeigen, was ich meine:
Bild
Bild
Nur 2 Beispiele, wie angeordnet werden kann. Und immer ändern sich die Koordinaten.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Re: Monitor Name auslesen

Beitrag von SBond »

jap, das ist mir bekannt ;)
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
Hoto
Beiträge: 294
Registriert: 01.09.2004 22:51

Re: Monitor Name auslesen

Beitrag von Hoto »

Danke für die ganzen Antworten. :)

Ich hab mal nach dem Tipp mit EnumDisplayDevices_() im Forum gesucht und diesen kurzen Testcode gefunden. Der spuckt mir aber erst mal nur die Display Adapter (Anschlüsse) der Grafikkarte aus aber keine Monitordaten?

Code: Alles auswählen

DD.DISPLAY_DEVICE
DD\cb = SizeOf(DISPLAY_DEVICE)
i = 0
While EnumDisplayDevices_(#Null, i, @DD, 0) <> 0
  Debug PeekS(@DD + OffsetOf(DISPLAY_DEVICE\DeviceKey), SizeOf(DISPLAY_DEVICE\DeviceKey))
  i + 1
Wend
Was mich zum Regkey "\Registry\Machine\System\CurrentControlSet\Control\Video\{70D2BA53-21A9-4904-957F-18955D0068BD}\0000" etc bringt. Noch hab ich dort keine Angaben direkt zum Monitor finden können, dafür etliche Grafikkarten Daten. ^^

Die Monitor Daten hab ich zwar auch gefunden, die stehen bei mir unter "\Registry\Machine\System\CurrentControlSet\Enum\DISPLAY", wenn ich von ersterem irgendwie zu zweiterem käme... die Verbindung hab ich in der Registry bisher noch nicht gefunden, ist aber sicherlich dort zu finden. ;)

@SBond: Sicher das du die eigentliche Frage verstanden hast? Das bringt mich jetzt nicht wirklich weiter. So weit war ich im Grunde vorher schon. ^^
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Re: Monitor Name auslesen

Beitrag von SBond »

Hoto hat geschrieben:@SBond: Sicher das du die eigentliche Frage verstanden hast? Das bringt mich jetzt nicht wirklich weiter. So weit war ich im Grunde vorher schon. ^^
haha :mrgreen:
scheinbar habe ich dich nicht richtig verstanden ^^

aber ich habe es nach diesem Satz von dir interpretiert .
Es geht im Prinzip darum einen bestimmten Monitor innerhalb eines beliebigen Multimonitor Setups zu erkennen um so zu wissen welcher Teil des Desktops auf diesem dargestellt wird.
...ich verstehe eigentlich nicht wirklich, welche Rolle der Monitorname oder der Grafikkartenanschluss spielen sollte, wenn du scheinbar die Positionen der Desktop-Teile ermitteln willst :|
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
RSBasic
Admin
Beiträge: 8047
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Monitor Name auslesen

Beitrag von RSBasic »

So, nachdem ich mich ein bisschen mit diesem Thema beschäftigt habe, hier der Code, um auch den Namen (oder Treiber-Name?) des Monitors zu ermitteln:

Code: Alles auswählen

EnableExplicit

#EDD_GET_DEVICE_INTERFACE_NAME = $00000001

Define DD1.DISPLAY_DEVICE\cb = SizeOf(DISPLAY_DEVICE)
Define DD2.DISPLAY_DEVICE\cb = SizeOf(DISPLAY_DEVICE)
Define iDevNum = 0
Define CurrentDeviceID$

While EnumDisplayDevices_(#Null, iDevNum, @DD1, 0)
  Debug PeekS(@DD1\DeviceName[0])
  
  EnumDisplayDevices_(@DD1\DeviceName, #Null, @DD2, #EDD_GET_DEVICE_INTERFACE_NAME)
  Debug PeekS(@DD2\DeviceName[0])
  CurrentDeviceID$ = PeekS(@DD2\DeviceID[0])
  Debug CurrentDeviceID$
  Debug StringField(CurrentDeviceID$, 2, "#")
  Debug "--------------------------------------------------"
  
  iDevNum + 1
Wend
Ist die zurückgegebene Bezeichnung für dich ausreichend?
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Hoto
Beiträge: 294
Registriert: 01.09.2004 22:51

Re: Monitor Name auslesen

Beitrag von Hoto »

Ja, damit lässt sich der Monitor eindeutig identifizieren, perfekt, danke. :)

Wenn jetzt noch \\.\Display1 mit dem von PBs ExamineDesktops() übereinstimmt, ist alles perfekt. ^^

P.S. das wäre was für deine Webseite, da hab ich als aller erstes geguckt. :mrgreen:
Zuletzt geändert von Hoto am 02.09.2014 00:20, insgesamt 2-mal geändert.
SBond
Beiträge: 266
Registriert: 22.05.2013 20:35

Re: Monitor Name auslesen

Beitrag von SBond »

Hoto hat geschrieben:...das wäre was für deine Webseite, da hab ich als aller erstes geguckt. :mrgreen:
indeed!

ist auch meine Quelle ;)

1. PB-Hilfe
2. RSBasic-Webseite
3. PB-Forum
4. MSDN
5. weinen

...so in der Reihenfolge
41 6c 73 6f 20 77 65 6e 6e 20 64 75 20 73 6f 20 76 69 65 6c 20 4c 61 6e 67 65 77 65 69 6c 65 20 68 61 73 74 2c 20 64 61 6e 6e 20 6b 61 6e 6e 73 74 20 64 75 20 61 75 63 68 20 67 6c 65 69 63 68 20 7a 75 20 6d 69 72 20 6b 6f 6d 6d 65 6e 20 75 6e 64 20 61 62 77 61 73 63 68 65 6e 2e

:D
Benutzeravatar
Hoto
Beiträge: 294
Registriert: 01.09.2004 22:51

Re: Monitor Name auslesen

Beitrag von Hoto »

Ja, die Reihenfolge kommt mir bekannt vor. ;)

Was das Missverständnis angeht: vielleicht hätte ich es genauer erklären sollen um Missverständnisse zu verhindern. Es geht um einen speziellen Monitor eines bestimmten Herstellers mit dem mein Tool dann auf dessen Desktop Part arbeiten soll und da dieser so gut wie immer als zusätzlicher Monitor angeschlossen ist, neben womöglich weiteren Zusatzmonitoren, ist eine eindeutige Identifizierung nötig.
Antworten