AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Monitornamen wie in Systemsteuerung auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Monitornamen wie in Systemsteuerung auslesen

Ein Thema von Zimond · begonnen am 7. Apr 2015 · letzter Beitrag vom 27. Apr 2015
Antwort Antwort
Zimond

Registriert seit: 14. Jul 2007
15 Beiträge
 
#1

Monitornamen wie in Systemsteuerung auslesen

  Alt 7. Apr 2015, 22:19
Hi.

Ich hab mir zu dem Thema Multimonitor und wie man Infos der angeschlossenen Monitor erhält, jetzt schon einiges durchgesehen.
Jedoch hab ich nach etwas bestimmten gesucht. Und zwar :

Ist es möglich die Namen der Displays zu bekommen so wie sie in der Systemsteuerung stehen? (Siehe Anhang) Also nicht nur Name des Adapters oder "PnP Monitor"?

Ich möchte in den Optionen meiner Adventure Engine eine Auswahl des zu benutzenden Monitors einbauen. Die Displays einfach zu nummerieren würde natürlich gehen, nur stimmt hier auch nicht die Reihenfolge mit der Systemsteuerung überein (dort ist mein Hauptmonitor als 2 eingetragen, in der Monitorliste unter Delphi aber als erstes) Der Spieler müsste also ausprobieren welcher Monitor welcher ist. Was unschön ist. Dank im vorraus.
Angehängte Grafiken
Dateityp: jpg displaynamen.jpg (45,5 KB, 50x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#2

AW: Monitornamen wie in Systemsteuerung auslesen

  Alt 7. Apr 2015, 22:52
Du kannst über die EDID Informationen an den Monitornamen kommen. Diese Infos stehen in der Registry. Damit bekommst Du aber nur die Namen so, wie es Windows erkennt. Soll heißen, dass wenn in der Systemsteuerung PnP-Monitor steht gibt es den Wert auch nur über die EDID Informationen aus der Registry.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.558 Beiträge
 
Delphi 12 Athens
 
#3

AW: Monitornamen wie in Systemsteuerung auslesen

  Alt 7. Apr 2015, 23:23
Ich arbeite hier auch mit Multimonitor-Systemen. Ich habe für den Fall von Screenshots, die gemacht werden sollen, es so gelöst, dass im Dialog kurzerhand die aktuellen Inhalte der Screens angezeigt werden und zusätzlich noch ein Hinweis angezeigt wird, auf welchem Monitor das Formular gerade liegt. So ist eigentlich auch relativ klar, welcher Monitor welcher ist und kann ihn relativ sicher auswählen (siehe anliegenden Screenshot). Wenn man vielleicht 2 gleiche Monitore hat, wäre zudem die Auswahl über den Namen schwierig...

Ich war faul und lasse da einfach nur die Monitore in der Reihenfolge des Monitor-Arrays anzeigen, man könnte die natürlich noch anhand der Koordinaten entsprechend örtlich richtig anzeigen lassen.
Angehängte Grafiken
Dateityp: jpg monitor.jpg (75,0 KB, 57x aufgerufen)
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#4

AW: Monitornamen wie in Systemsteuerung auslesen

  Alt 8. Apr 2015, 00:13
Aufruf:
Systemsteuerung\Alle Systemsteuerungselemente\Anzeige\Bildschirmauflösu ng

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var FN: String;
begin
FN:= 'Shell32.dll,Control_RunDLL desk.cpl';
ShellExecute(0,nil,PChar('Rundll32.exe'),PChar(FN),'',SW_SHOWNORMAL);
end;
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#5

AW: Monitornamen wie in Systemsteuerung auslesen

  Alt 8. Apr 2015, 09:57
mit der Funktion EnumDisplayDevices() bekommst Du alle Werte, welche Du benötigst.
Angehängte Grafiken
Dateityp: jpg MonitorInfo.jpg (239,8 KB, 60x aufgerufen)
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Benutzerbild von MessOldie
MessOldie

Registriert seit: 1. Apr 2009
Ort: Reinsdorf OT Friedrichsgrün
12 Beiträge
 
Delphi 6 Personal
 
#6

AW: Monitornamen wie in Systemsteuerung auslesen

  Alt 14. Apr 2015, 09:51
EnumDisplayDevices führt bei mir nur bis zu den Standardnamen, wie "Pnp-Monitor" usw.
Ich muss letzten Endes doch über die EDID-Auswertung gehen, um an den "Klarnamen" des Monitors zu kommen.
Für solche Aufgaben habe ich mir eine Unit gemacht. Wenn die wer will, kann er sie gerne kriegen...
(WinXP, Win7, Delphi5/6)
Gottfried Pilz
Man kann immer noch dazulernen

Geändert von MessOldie (14. Apr 2015 um 10:08 Uhr) Grund: Wiederholung
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz