Monitor Name auslesen
- 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
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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Monitor Name auslesen
ach sorry. Ich war wieder zu langsamts-soft hat geschrieben:Was soll ich da testen?
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

- 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
Hab mal schnell 2 Fotos gemacht, um zu zeigen, was ich meine:


Nur 2 Beispiele, wie angeordnet werden kann. Und immer ändern sich die Koordinaten.


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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Re: Monitor Name auslesen
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

Re: Monitor Name auslesen
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?
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. ^^
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
WendDie 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. ^^
Re: Monitor Name auslesen
hahaHoto 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. ^^
scheinbar habe ich dich nicht richtig verstanden ^^
aber ich habe es nach diesem Satz von dir interpretiert .
...ich verstehe eigentlich nicht wirklich, welche Rolle der Monitorname oder der Grafikkartenanschluss spielen sollte, wenn du scheinbar die Positionen der Desktop-Teile ermitteln willstEs 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.
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

Re: Monitor Name auslesen
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:
Ist die zurückgegebene Bezeichnung für dich ausreichend?
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
WendRe: Monitor Name auslesen
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.
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.
Zuletzt geändert von Hoto am 02.09.2014 00:20, insgesamt 2-mal geändert.
Re: Monitor Name auslesen
indeed!Hoto hat geschrieben:...das wäre was für deine Webseite, da hab ich als aller erstes geguckt.
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

Re: Monitor Name auslesen
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.
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.

