ich würde gerne die die monitore enumerieren.
Zunächst hab ich die Screen Klasse aus System.Windows.Forms probiert.
Die liefert auf meinem System (Matrox Karte, 3 Monitore im Stretched mode: heißt auflösung 3840x1024) nur einen Screen. An der Grafikkarte hängen aber 3 Monitore.
Es müsste also einen Weg geben, die Grafikkarte direkt zu fragen.
Hat da jemand ne Idee?
inwieweit und ob das mit den 'normalen'(.NET etc) Methoden geht weiß ich nicht!
Du kannst aber API's wie Direct3D/OGL oder auch XNA dafür verwenden.
Habe mal eine Facharbeit zur Grafikkartenenumeration mit D3D geschrieben und eine Komponente die einem bei der Enumeration mit XNA unterstützt. Zweiteres ist aber noch nicht 100% fertig und hat noch Fehler bei Multisampling im Zusammenhang ob windowed mode oder nicht!Denke aber nicht das du das brauchst da du wohl ansonsten dich gleich um die Möglichkeiten der API's gekümmert hättest!
Oder du schaust einfach in die MSDN wenn es dir nur um die Bestimmung der Adapteranzahl(Monitore) geht. Das is mit wenigen Zeilen getan...
Bei XNA wäre das einfach Adapters vom GraphicsAdapter und bei Direct3D GetAdapterCount() vom Device direkt
also so eine ähnliche Frage gabs schonmal und da hab ich auch schon ein link auf Codeproject gepackt gehabt wo jemand ein ScreenSaver für mehrere Monitore geschrieben hat. Wenn deine Grafikkarte deinem System vorgaukelt das nur ein Monitor angeschlossen ist hast du ein Problem. Dann wüsste ich nicht wie man es einzeln herauskriegen würde. Wahrscheinlich nur über eine API von Matrox selbst.
using System;
using System.Runtime.InteropServices;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;
class MainClass
{
[STAThread]
static void Main(string[] args)
{
foreach (AdapterInformation adapterInfo in Manager.Adapters)
{
Console.WriteLine("{0}", adapterInfo.CurrentDisplayMode);
}
}
}
ich weiß nicht ob du meinen Post nicht richtig gelesen hast, aber beide Snippets von dir bringen dir nur 1 großen monitor. Bei dem 2ten Snippet kommen noch Sachen wie NetMeeting mit raus als Treiber für Übertragungen von Video. Aber so wie es bei dir eingestellt ist gauckelt der Matrox Treiber nur 1 Monitor vor. D.h. du musst, wenn es eine gibt, auf eine API von Matrox zur Ansteuerung zurückgreifen.
ja, hab es gelesen.
Wollte nur zeigen, wie es nicht geht. falls mal jemand nochmal sucht.
Mit der Grafikkarten API zu liebäugeln hab ich auch schon überlegt, nur kann es ja auch andere hersteller geben, deren api ich nicht zur verfügung hab.
hatte gehofft, es gibt da irgendetwas generisches.