Gibt es eine Möglichkeit, die Bildschirmauflösung programmgesteuert zu ändern oder mehrere Monitore in Windows XP zu aktivieren/deaktivieren? Zum Beispiel um von 1024x768 mit einem Monitor auf 1280x104 auf zwei Monitoren zu wechseln? Ich wäre am meisten interessiert an einer Win32-Funktion, dies zu tun, aber alles, was mit einer Windows-Verknüpfung verknüpft werden kann, würde ausreichen.Programmatische Änderung der Bildschirmauflösung?
Antwort
Sie können EnumDisplayDevices verwenden, um herauszufinden, welche Anzeigen verfügbar sind, und EnumDisplaySettings, um eine Liste der verfügbaren Auflösungen für Ihre Anzeigen zu erhalten. Verwenden Sie ChangeDisplaySettings, um die benötigte Auflösung einzustellen.
Ja, aber es ist nicht Teil von .NET. Sie müssen einen Wrapper verwenden, aufrufen oder schreiben, um auf die Win32-API zuzugreifen.
Siehe ChangeDisplaySettings und zugehörige Funktion.
Here Sie können ein grundlegendes Beispiel finden.
Die Frage ging nicht um .NET. – brunoqc
können Sie leicht Skript dies mit http://www.autohotkey.com
Hier ist ein Skript für Windows zwischen einem Monitor und zwei Monitoren Vertauschen + 1 und Windows + 2
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#Warn ; Recommended for catching common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#1::
Send {LWin}
WinWaitActive Start menu
Send Adjust Screen Resolution
Send {enter}
WinWaitActive Screen Resolution
ControlClick ComboBox3
Send {PgDn}
Send {Up} ; Select "Show desktop only on 1"
Send {enter}
Sleep 3000 ; workaround - cannot select accept/revert window?
Send {left}
Send {enter} ; accept changes
Return
#2::
Send {LWin}
WinWaitActive Start menu
Send Adjust Screen Resolution
Send {enter}
WinWaitActive Screen Resolution
ControlClick ComboBox3
Send {PgDn}
Send {Up}
Send {Up} ; Select "Extend these displays"
Send {enter}
Sleep 3000 ; workaround - cannot select accept/revert window?
Send {left}
Send {enter} ; accept changes
Return
dem gegebenen Link seiner leicht zu lesen.
laden Sie einfach die DLL die gut zu gehen ..
Screen Srn=Screen.PrimaryScreen;
int tempWidth=Srn.Bounds.Width;
int tempHeight=Srn.Bounds.Height;
Console.WriteLine("Current Screen width is {0} and height is {1}.",
tempWidth,
tempHeight);
Ich vertraue dir nicht einmal zu tun, dass es ohne die Erlaubnis des Benutzers denken würde. Wenn Sie mit meiner Bildschirmauflösung herumspielen würden, wäre ich völlig sauer auf Sie - und würde Ihr Programm wahrscheinlich nicht ein zweites Mal benutzen. –
Ich stimme mit dem vorherigen Kommentator überein. Es sei denn, es handelt sich um eine Art Utility zur Verwaltung von Powerpoint-Präsentationen. Es ist schwer vorstellbar, dass eine App eine nützliche Funktion wäre. –
Das war "Ich stimme völlig zu ..." –