2008-10-18 8 views
17

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?

+8

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. –

+0

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. –

+0

Das war "Ich stimme völlig zu ..." –

Antwort

2

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.

+0

Die Frage ging nicht um .NET. – brunoqc

1

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 
-4

dem gegebenen Link seiner leicht zu lesen.

laden Sie einfach die DLL die gut zu gehen ..

MyTactics.blogspot.in

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);