PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Auflösung ändern


PatkIllA
2011-12-04, 16:10:52
Ich möchte gerne per Skript diverse Auflösungen Refreshraten und Monitorkonfigurationen einstellen.
Dafür scheint es ja die Funktion ChangeDisplaySettingsEx (http://msdn.microsoft.com/en-us/library/dd183413%28v=vs.85%29.aspx) zu geben.

Allerdings habe ich diverse Probleme mit dem An-und Abschalten vom zweiten Monitor. Entweder bleibt der ganz an bzw. aus oder die Einstellungen passen nicht.

Ich nutze CDS_NORESET | CDS_UPDATEREGISTRY und rufe am Ende die Funktion mit null als Device auf, wie im unteren Beispiel.

PatkIllA
2011-12-17, 21:28:58
Unter Windows 7 soll man wohl SetDisplayConfig (http://msdn.microsoft.com/en-us/library/windows/hardware/ff569533%28v=vs.85%29.aspx) benutzen, was gelinde gesagt ziemlich kompliziert ist.
Ich hab aber jetzt mit Restore Monitors (https://github.com/Ciantic/monitortoggler) ein Kommandozeilenprogramm gefunden, was genau das macht was ich wollte.

PatkIllA
2011-12-20, 23:12:25
Grmpf
gerade mal neugestartet und schon gibt es die Meldung The combination of parameters and flags specified are invalid.

PatkIllA
2012-03-04, 16:41:24
Wieder rauskram.
Ich habe jetzt den Quellcode von dem oben genannten Restore Monitors ins Visual Studio gepackt.
Anscheinend verändert sich die Adapter Id schon bei einem Neustart. Was ist denn das für eine komische API? Stecke jetzt nicht wirklich tief in der Windows API, aber das kommt mir sehr komisch vor. Wie läuft das denn mit den LUID? Sonst kenne ich nur die GUID.

BAGZZlash
2012-03-05, 20:36:22
Kennst Du UltraMon? Ist eine Programmsammlung, die u.a. eine Taskleiste auf den zweiten Bildschirm bringt, schirmübergreifende Hintergrundbilder ermöglicht usw.
Für UltraMon gibt's auch ein SDK. Kannst ja mal schauen, ob da was für Dich dabei ist: SDK (http://www.realtimesoft.com/ultramon/developers.asp).