Прекращение подачи видеосигнала на дисплей
Категории: Программы, Разработка ПО
Тэги: C#, Hardware, programming, Windows
В связи с особенностями работы монитора при подключении второго источника изображения при активном первом, написал небольшую программку, которая посылает сообщение, прекращающее выдачу видеосигнала на дисплей. Сообщение идентично тому, что посылается при отключении дисплея в режиме PowerSaving.
За все отвечает системное сообщение WM_SYSCOMMAND с параметрами SC_MONITORPOWER и 2. LPARAM со значением 2 соответствует отключению дисплея. Значение параметра -1 – включает дисплей, 1 – вводит дисплей в режим Stand By (в основном актуально для ноутбуков).
Код получился крайне незамысловатый:
static class Program { [DllImport("user32.dll")] static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); static IntPtr SC_MONITORPOWER = new IntPtr(0xF170); const uint WM_SYSCOMMAND = 0x0112; static IntPtr MONITOR_OFF = new IntPtr(2); static IntPtr HWND_BROADCAST = new IntPtr(0xffff); [STAThread] static void Main() { SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF); } }





.png)