AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Multi-Monitor-Umgebung: Bestimmten Monitor abschalten
Thema durchsuchen
Ansicht
Themen-Optionen

Multi-Monitor-Umgebung: Bestimmten Monitor abschalten

Ein Thema von Codehunter · begonnen am 17. Dez 2012 · letzter Beitrag vom 8. Jan 2013
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#11

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten

  Alt 19. Dez 2012, 09:13
Spontan würde ich sagen über das monitoreigene Menü... (ausnahmsweise per Hand)
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#12

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten

  Alt 19. Dez 2012, 09:18
Der kann nur Helligkeit und Kontrast. Reset setzt zwar diese Einstellungen zurück aber ändert nichts an der Farbe.

Habs mit Try & Error über das Programm wieder brauchbar bekommen... Auch wenn ich das gefühl hab der Eine tut jetzt in den Augen weh. Muss vielleicht noch mal mit dem Kontrast herumspielen.

Scheint als hätte der Monitor-Hersteller am OSD gespart.
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#13

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten

  Alt 19. Dez 2012, 09:20
Dann hätten wir noch in den Anzeigeeinstellungen "Farbkalibrierung". Das ist eine Art Wizzard... (W7)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten

  Alt 19. Dez 2012, 09:57
@Meta777: Vielen Dank für den kleinen Denkanstoss! Ich wußte gar nicht dass es ein Low-Level-Monitor-API gibt. Da geht ja so einiges was ich mir vorgestellt hatte (sofern es der Monitor und dessen Verkabelung unterstützt). GetMonitorCapabilities dürfte für mich der richtige Einstieg sein.

Zwar wird das Ganze erst ab Vista unterstützt, aber so langsam finde ich mich damit ab dass Vista jetzt das älteste noch zu unterstützende Windows ist.

EDIT: @Tonic1024:
Du bist jetzt wahrscheinlich über genau das selbe gestolpert was ich in einem früheren Post hier schon geschrieben habe: Windows wirft die Grafikkarte und den Monitor "gedanklich" manchmal in einen Topf. Man ändert eine Einstellung (in deinem Fall Helligkeit oder Gamma) und muss sich da ganz genau überlegen, welches Device das dann tut - technisch könnten es nämlich beide: Graka und Monitor.

Geändert von Codehunter (19. Dez 2012 um 10:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten

  Alt 19. Dez 2012, 13:53
Nochmal herzlichen Dank an Meta777, der Denkanstoß über das Monitor Low Level API war sehr gut. Ich habs damit ohne viel Theater hinbekommen. Zwar braucht man das VESA Monitor Control Command Set (findet der Gockel als PDF) und einen VESA DDC 1.0 kompatiblen Monitor (kann fast jeder Flachglotzer und ein Großteil der Tiefglotzer) aber dann funktioniert das perfekt. Einfach ein SetVCPFeature(hPhysicalMonitor, $D6, $02) an den Bildschirm schicken und schon ist er schwarz wie die Nacht, mit SetVCPFeature(hPhysicalMonitor, $D6, $01) weckt man ihn wieder auf.

Ich glaub das wird eine richtig nette Implementierung des Monitor API von Windows. Was mich aber noch irritiert an dem Low Level API: Pro Monitor-Handle (HMONITOR) kennt das System wieder eine Menge X an physischen Monitorgeräten, verwendet aus dieser Menge aber immer nur den ersten Eintrag. Ist das jetzt für solche Konfigurationen gedacht, wo ein Bild via Grafiktreiber auf mehrere Monitore verteilt wird? So wie man das manchmal auf Messen oder in Fernsehstudios sieht wo man eine 3x3 oder 4x4 Matrix aus Bildschirmen hat? Das MSDN gibt dazu jedenfalls keine Auskunft:
Zitat von MSDN: GetNumberOfPhysicalMonitorsFromHMONITOR function:
Receives the number of physical monitors associated with the monitor handle.
Ich dachte bisher immer HMONITOR wäre das Handle zum eigentlichen Bildschirmgerät, weil man darüber auch Details zum Gerät an sich auslesen kann. Jetzt gibt es wieder eine Unterverzweigung. Allerdings liefert GetNumberOfPhysicalMonitorsFromHMONITOR auf sämtlichen meiner Testsysteme immer nur "0" (bei virtuellen Grafiktreibern) oder "1" (bei echten Videoschnittstellen).

Besteht denn Interesse an einer Veröffentlichung meiner Multimon-Implementierung?
  Mit Zitat antworten Zitat
Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#16

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten

  Alt 20. Dez 2012, 09:55
Ich muss vor dem oben stehenden Code warnen. Er ist unvollständig. Bei dem Versuch herauszufinden wie er funktioniert hab ich auf meinem ersten Monitor, wie es scheint, den Gamma-Wert so hoch geschraubt, dass er beinahe nur noch weiss ist und mein zweiter Monitor ist rosa eingefärbt.

Wie stellt man auf default zurück?

Toni
Sorry Tonic1024,

falls du es nicht schon gefunden hast kannst du mit den Factory Reset Codes aus der Tabelle 8.1 des Bei Google suchenVESA Monitor Control Command Set die Einstellungen wieder reseten. Ich habe auch mal die Mods informiert, dass Sie eine Warnung in meinen Beitrag schrieben (Selbst bearbeiten kann ich ihn nicht mehr).

Shalom
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#17

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten

  Alt 20. Dez 2012, 10:12
Kein Beinbruch... Man muss sich nur im klaren sein was man tut wenn man blindlinks Messages durch die Gegend Feuert.
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten

  Alt 20. Dez 2012, 11:43
So, neue Version, neues Glück:

Wenn man jetzt den Reiter "VESA MCCS" anklickt hat man die Power-Buttons (aufpassen, dass man nicht den abschaltet wo man das Fenster vom Testprogramm hat) und exemplarisch einen Regler für die Helligkeit. Wenn man den verschiebt und anschließend mal im OSD des Monitors nachschaut, dann ändert man mit dem Regler wirklich die Monitoreinstellungen, nicht die von der Grafikkarte. Man sollte sich aber ggf. vorher den eingestellten Wert merken, damit man ihn hinterher per OSD wieder genauso einstellen kann. Die Trackbar ist ja nur ein Schätzeisen.

Der Helligkeitsregler steht nur stellvertretend für eine ganze Reihe von Optionen, die von VESA MCCS unterstützt werden. Es hängt aber auch davon ab, welches Subset davon von der Monitor-Firmware unterstützt wird.

Wichtig: Die V4 unterstützt Windows XP nicht mehr!
Angehängte Dateien
Dateityp: zip Multimon_V4.zip (304,4 KB, 63x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Tonic1024
Tonic1024

Registriert seit: 10. Sep 2003
Ort: Cuxhaven
559 Beiträge
 
RAD-Studio 2009 Ent
 
#19

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten

  Alt 20. Dez 2012, 12:10
Wenn ich einen Monitor auswähle bekomme ich eine AV. Helligkeit lässt sich danach regeln. Monitorpower klappt nicht. Keine Meldung, keine Reaktion.

Gruß,

Toni
Der frühe Vogel fängt den Wurm, richtig.
Aber wird nicht auch der frühe Wurm vom Vogel gefressen?
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#20

AW: Multi-Monitor-Umgebung: Bestimmten Monitor abschalten

  Alt 20. Dez 2012, 12:23
@Tonic: Welches Betriebssystem? Die AV könnte daher kommen, dass ich ein paar EXTERNALs drin habe und dein OS keine passende DLL hat. Ich habs auf Win 7 x64 laufen ohne AV. Wenn Helligkeit funzt und Power nicht könnte es sein, der Bildschirm kann den MCCS-Befehl nicht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 16:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz