private void SetPanelStatus()
 {
     Win32.DISPLAY_DEVICE lpDisplayDevice1 = new Win32.DISPLAY_DEVICE();
     lpDisplayDevice1.cb = Marshal.SizeOf <Win32.DISPLAY_DEVICE>(lpDisplayDevice1);
     try
     {
         for (uint iDevNum1 = 0; Win32.EnumDisplayDevices((string)null, iDevNum1, ref lpDisplayDevice1, 0U); ++iDevNum1)
         {
             if ((lpDisplayDevice1.StateFlags & 1) == 1)
             {
                 Console.WriteLine("{0}, {1}", (object)lpDisplayDevice1.DeviceName, (object)lpDisplayDevice1.StateFlags);
                 Win32.DISPLAY_DEVICE lpDisplayDevice2 = new Win32.DISPLAY_DEVICE();
                 lpDisplayDevice2.cb = Marshal.SizeOf <Win32.DISPLAY_DEVICE>(lpDisplayDevice2);
                 for (uint iDevNum2 = 0; Win32.EnumDisplayDevices(lpDisplayDevice1.DeviceName, iDevNum2, ref lpDisplayDevice2, 1U); ++iDevNum2)
                 {
                     if ((lpDisplayDevice2.StateFlags & 1) == 1)
                     {
                         Console.WriteLine("{0}, {1}", (object)lpDisplayDevice2.DeviceName, (object)lpDisplayDevice2.StateFlags);
                         IntPtr file = Win32.CreateFile(lpDisplayDevice2.DeviceID, 3221225472U, 1U, IntPtr.Zero, 3U, 0U, IntPtr.Zero);
                         if (file != IntPtr.Zero)
                         {
                             bool state = false;
                             Win32.GetDevicePowerState(file, out state);
                             if (state)
                             {
                                 Win32.SendMessage(-1, 274, 61808, 2);
                             }
                             else
                             {
                                 Win32.mouse_event(1, 0, 1, 0, 0);
                                 Thread.Sleep(40);
                                 Win32.mouse_event(1, 0, -1, 0, 0);
                             }
                             Win32.CloseHandle(file);
                         }
                     }
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(string.Format("{0}", (object)ex.ToString()));
     }
 }
Exemple #2
0
 internal static extern bool EnumDisplayDevices(
     string lpDevice,
     uint iDevNum,
     ref Win32.DISPLAY_DEVICE lpDisplayDevice,
     uint dwFlags);