2008-10-18 50 views
17

¿Hay alguna manera de cambiar la resolución de la pantalla mediante programación o habilitar/deshabilitar múltiples monitores en Windows XP? Por ejemplo, ¿cambiar de 1024x768 con un monitor a 1280x104 en dos monitores? Estaría muy interesado en una función de win32 para hacer esto, pero cualquier cosa que pueda vincularse con un atajo de Windows sería suficiente.¿Cambiar la resolución de la pantalla mediante programación?

+8

confío en que ni siquiera pensar en hacer que, sin el permiso del usuario. Si manipulaste la resolución de mi pantalla, estaría totalmente enojado contigo, y probablemente no usaría tu programa por segunda vez. –

+0

Totalmente de acuerdo con el comentarista anterior. A menos que esto sea una especie de utilidad para administrar presentaciones en PowerPoint, es difícil imaginar una aplicación en la que esta sea una función útil. –

+0

Eso fue "Estoy totalmente de acuerdo ..." –

Respuesta

2

Sí, pero no es parte de .NET. Tendrá que utilizar, invocar o escribir un contenedor para acceder a la API de Win32.

Consulte ChangeDisplaySettings y funciones relacionadas.

Here puede encontrar un ejemplo básico.

+0

La pregunta no era sobre .NET. – brunoqc

1

puede fácilmente guión esto con http://www.autohotkey.com

Aquí es una secuencia de comandos para el bombeo de entre un monitor y dos monitores en Windows + 1 y 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

Leer el enlace dado su fácil.

sólo tiene que descargar el archivo DLL del bueno ir ..

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