Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Monitor clonen / mirroring (https://www.delphipraxis.net/129953-monitor-clonen-mirroring.html)

Delphi-Coder 28. Feb 2009 10:35


Monitor clonen / mirroring
 
Hallo,

ich habe ein ziemlich kniffliges Problem. Die Ausgangssituation ist folgende: Ich habe einen PC, an welchem 2 Monitore angeschlossen sind. Der 2. Monitor soll nun aber nicht den Desktop des 1. erweitern, sondern dasselbe Bild darstellen (also clonen). Das geht mit der Software des GraKa-Herstellers auch. Aber leider speichert mir Windows XP (embedded) bzw. die GraKa-Software diese Einstellung nicht und ich muss es nach jedem Neustart erneut manuell einstellen.

Nun bin ich auf der Suche nach einer automatsichen Mehtode. Ich habe nun schon mehrere Stunden im Internet recherchiert und vieles erfolglos ausprobiert. U.a. habe ich dieses Beispiel probiert Delphi-Praxis. Das soll zwar in einem ersten Schritt auch den Desktop auf den 2. Bildschirm erweitern, aber bisher funktioniert nicht mal das. Das Programm bringt auch keinen Fehler.

Eigentlich müsste doch nur der 2. Monitor aktiviert werden, ohne den Desktop zu erweitern...

Ich hoffe, ihr könnt mir helfen! Es ist nämlich wirklich sehr wichtig!

Viele Grüße,
Delphi-Coder

Reinhard Kern 28. Feb 2009 11:29

Re: Monitor clonen / mirroring
 
Zitat:

Zitat von Delphi-Coder
... U.a. habe ich dieses Beispiel probiert Delphi-Praxis.

Hallo,

ein Druckermonitor ist aber was ganz anderes - ein Programm, das die Druckerausgabe überwacht und auf Wunsch Drucke abfängt.

Was den (Video-) Monitor angeht, das dürfte schwierig werden: i.a. gibt es 3 Einstellmöglichkeiten, zuerst im BIOS (z.B. bei Notebooks), dann im Treiber der Grafikkarte und schliesslich im Betriebssystem. Nur auf letztere Einstellung kann man dokumentiert zugreifen.

Der Treiber legt zwar seine Infos sicher auch in der Registry ab, aber was und wo müsste man wohl durch Reverse Engeneering herausfinden.

Gruss Reinhard

Valle 28. Feb 2009 11:33

Re: Monitor clonen / mirroring
 
Wäre es eventuell eine Alternative einfach einen VGA Switch zu kaufen? Dieser kann denn Ausgang der Grafikkarte quasi duplizieren und auf 2 Monitoren darstellen. Das wird oft verwendet, bei Computern mit Monitor und Beamer für Präsentationen. Schau mal bei Amazon, da gibt's sowas für unter 10EUR, zumindest bei 2er-Switches.

Mit freundlichen Grüßen,

Valle

Delphi-Coder 28. Feb 2009 12:15

Re: Monitor clonen / mirroring
 
Danke für die Antworten!

@Reinhard: Das mit dem TPrinterMonitor fand ich auch komisch. Aber es hat ja zum Thema des anderen Threads gepasst. Ich werde mal schauen, ob ich da in der Registry noch irgendwelche Einstellungen machen kann. Bisher hab ich da nichts brauchbares gefunden.

@Valle: Nein, das ist leider keine Alternative. Denn der PC ist in dem ersten Monitor schon fest verbaut. Da kann ich nicht zwischen gehen.

Muetze1 28. Feb 2009 12:25

Re: Monitor clonen / mirroring
 
Das Clonen ist eine Funktion der Grafikkartentreiber und wird nicht von Windows über eine API angeboten.

Zitat:

Zitat von Delphi-Coder
Nun bin ich auf der Suche nach einer automatsichen Mehtode. Ich habe nun schon mehrere Stunden im Internet recherchiert und vieles erfolglos ausprobiert. U.a. habe ich dieses Beispiel probiert Delphi-Praxis.

Das hat nichts mit dem Clonen zu tun sondern nur um die Aktivierung bzw. Deaktivierung des 2. Monitors zu tun. Wenn der bei dir nicht klappt, ist zu prüfen ob du die notwendigen Parameter in den Strukturen angepasst hast (Auflösung, Origin, etc).

Zitat:

Zitat von Reinhard Kern
ein Druckermonitor ist aber was ganz anderes - ein Programm, das die Druckerausgabe überwacht und auf Wunsch Drucke abfängt.

Druckmonitor? Hä? Was soll das sein? Wo steht das was von einem Druckmonitor?

Delphi-Coder 28. Feb 2009 12:39

Re: Monitor clonen / mirroring
 
Zitat:

Zitat von Muetze1
Das Clonen ist eine Funktion der Grafikkartentreiber und wird nicht von Windows über eine API angeboten.

Das ist ne Aussage, mit der sich was anfangen lässt. Also geh ich mal etwas ins Detail: Ich habe eine ATI Radeon HD 3200 GraKa, welche das clonen auch unterstützt. Ich habe im Contextmenü des Desktops die Gruppe "ATI Radeon HD 3200" mit den Menüpunkten "Detect Displays" und "Clone Monitor" (und ein paar mehr). Über die Registry habe ich schon herausgefunden, dass damit wohl die ATIDisplConf.dll angesteuert wird. Nur war für mich nicht ersichtlich, mit welchen Parametern.

Vielleicht liegt hier ja der Schlüssel zum Erfolg?

Zitat:

Zitat von Muetze1
Das hat nichts mit dem Clonen zu tun sondern nur um die Aktivierung bzw. Deaktivierung des 2. Monitors zu tun. Wenn der bei dir nicht klappt, ist zu prüfen ob du die notwendigen Parameter in den Strukturen angepasst hast (Auflösung, Origin, etc).

Richtig. Aber mein Gedanke war, dass das Clonen ja nicht mehr so schwer sein kann, wenn zumindest das "Desktop erweitern" schon geht. Aber dem ist wohl nicht so.

Zitat:

Zitat von Muetze1
Zitat:

Zitat von Reinhard Kern
ein Druckermonitor ist aber was ganz anderes - ein Programm, das die Druckerausgabe überwacht und auf Wunsch Drucke abfängt.

Druckmonitor? Hä? Was soll das sein? Wo steht das was von einem Druckmonitor?

In dem Codeabschnitt steht was von TPrinterMonitor. Das hat wohl etwas verwirrt!

Christian Seehase 28. Feb 2009 13:03

Re: Monitor clonen / mirroring
 
Moin Delphi-Coder,

also wenn es sich um eine Funktion der Software handelt, und die Einstellung "nur" einen Neustart nicht überlebt, stellt sich mir die Frage, ob das nicht einfach ein Bug in der Software ist.
Frag' doch mal beim ATI-Support nach.
Wenn ich mich recht entsinne gibt es für die nVidia-Software ein SDK, vielleicht gibt's das ja auch für die ATI-Software.

Uwe Raabe 28. Feb 2009 13:06

Re: Monitor clonen / mirroring
 
Ich würde erstmal überprüfen, ob bestimmte Änderungen überhaupt einen Neustart überleben. Der Sinn eines Embedded System ist ja gerade, nach einem Neustart in einen definierten Zustand zu kommen. Vielleicht gibt es ja gewisse Vorkehrungen, die z.B. Änderungen an der Hardware-Konfiguration (und dazu zähle ich die Display-Treiber-Einstellungen) bei einem Neustart auf vordefinierte Werte zurücksetzt.

Delphi-Coder 28. Feb 2009 13:07

Re: Monitor clonen / mirroring
 
Moin Christian,

für ATI gibt es auch ein SDK. Den ATI-Support wollte ich Montag auch noch kontaktieren. Es gibt für die ATI-GraKas ein Tool namens Catalyst Control Center. Damit soll es wohl funktionieren. Nur kann ich das nicht installieren, weil es das .Net-Framework verlangt und ich das auf dem XP embedded-System nicht installieren kann bzw. will.

Gibt es denn zufällig ne Möglichkeit heraus zu finden, welcher Befehl genau über das ContextMenü an die Datei "ATIDisplConf.dll" gesendet wird?


@Uwe: Diese Vorrichtungen gibt es. Aber die habe ich alle schon abgeschaltet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:36 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