2010-12-14 10 views
8

Korzystając z Windows API możliwe jest umieszczenie monitorów w trybie uśpienia:Czy można spać z jednym monitorem przy użyciu WinAPI/C#?

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

a następnie

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

Po uruchomieniu komendy powyżej, oba monitory iść spać. Czy to możliwe, aby wpłynęło to tylko na jeden z wielu podłączonych monitorów?

Odpowiedz

2

Dokładnie nie wiem, czy można uśpić konkretny monitor ... ale można to osiągnąć zmieniając liczbę wyświetlaczy na Jeden (zakładając, że masz 2), którego chcesz obudzić. Drugi automatycznie przejdzie w stan uśpienia po około minucie (większość monitorów wchodzi w tryb oszczędzania energii po około minucie po rozłączeniu). W zasadzie programowo odłączasz monitor. Możesz go aktywować, gdy jej potrzebujesz.

Jednak ta metoda będzie mieć inne implikacje, które będą znane po rozpoczęciu gry.

+0

Podobnie jak okna na drugim monitorze, który jest przenoszony :) – Basic

+0

@Elend: Jeśli osiągnąłeś to .. możesz opublikować, jak to możliwe. Obecnie szukam podobnego rozwiązania .. I chociaż zasugerowałem podejście ... próbowanie znaleźć, jak to działa. jeśli w ogóle .. – Bhuvan

+0

Niestety, nie mogłem tego osiągnąć. –

2

Zgodnie z this ... nie.

Powodem jest to, że API wyłącza wyświetlacz, który jest zdefiniowany jako oba monitory. Wyłączenie określonego monitora byłoby wiązaniem sprzętowym.

Powiązane problemy