2010-12-14 9 views
8

Mediante el uso de la API de Windows es posible colocar los monitores en modo de suspensión:¿Es posible poner un solo monitor a dormir usando WinAPI/C#?

[DllImport("user32.dll")] 
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); 

y luego

SendMessage(this.Handle, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)2); 

Cuando se ejecuta el comando anterior, ambos monitores ir a dormir. ¿Es posible hacer que esto afecte solo a uno de los múltiples monitores conectados?

Respuesta

2

Exactamente no sé si puede poner en suspensión un monitor específico ... pero puede lograrlo cambiando el número de pantallas a Uno (suponiendo que tiene 2), que quieres estar despierto. El otro se apagará automáticamente después de aproximadamente un minuto (la mayoría de los monitores entran en el modo de ahorro de energía después de aproximadamente un minuto después de la desconexión). Está esencialmente desconectando el monitor, programáticamente. Puedes activarlo cuando lo necesites.

Sin embargo, este método tendrá otras implicaciones, que sabrá una vez que comience a jugar con él.

+0

Al igual que las ventanas en el segundo monitor que se mueve :) – Basic

+0

@Erlend: Si ha logrado esto ... puede publicar sobre cómo lo hizo posible ... Actualmente estoy buscando una solución similar .. Y aunque he sugerido una enfoque ... tratando de encontrar cómo funcionó ... si es que lo hizo ... – Bhuvan

+0

Desafortunadamente, no pude lograr esto. –

2

Según this ... no.

La razón es que la API está apagando la pantalla que se define como ambos monitores. Apagar un monitor específico sería una conexión de hardware.

Cuestiones relacionadas