Ejemplo n.º 1
0
        private void button1_Click(object sender, EventArgs e)
        {
            // SendMessage( this.Handle.ToInt32() , WM_SYSCOMMAND , SC_MONITORPOWER ,2 );//DLL function //go to powersave.

            DISPLAY_DEVICE d = new DISPLAY_DEVICE();
            d.cb = Marshal.SizeOf(d);
            try
            {
                for (uint id = 0; EnumDisplayDevices(null, id, ref d, 0); id++)
                {
                    MessageBox.Show(
                        String.Format("{0}, {1}, {2}, {3}, {4}, {5}",
                                 id,
                                 d.DeviceName,
                                 d.DeviceString,
                                 d.StateFlags,
                                 d.DeviceID,
                                 d.DeviceKey
                                 )
                                  );
                    d.cb = Marshal.SizeOf(d);

                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(String.Format("{0}", ex.ToString()));
            }
            GetDisplayInfo();
            ddInactive.dmPosition.x = 0;
            ddInactive.dmPosition.y = 0;
            ddInactive.dmFields = DM.Position;
            if (DISP_CHANGE.Successful == ChangeDisplaySettingsEx(szInactiveDeviceName,
                ref ddInactive, IntPtr.Zero,
                (int)(CDSFlags.CDS_RESET | CDSFlags.CDS_UPDATEREGISTRY |
                 CDSFlags.CDS_SET_PRIMARY), IntPtr.Zero))
            {
                ddActive.dmPosition.x = 0;
                ddActive.dmPosition.y = 0;
                ddActive.dmPelsHeight = 0;
                ddActive.dmPelsWidth = 0;
                ddActive.dmFields = DM.PelsHeight | DM.PelsWidth | DM.Position;

                ChangeDisplaySettingsEx(szActiveDeviceName, ref ddActive,
                  IntPtr.Zero, (int)(CDSFlags.CDS_RESET |
                  CDSFlags.CDS_UPDATEREGISTRY), IntPtr.Zero);
            }
        }
Ejemplo n.º 2
0
 public void GetDisplayInfo()
 {
     ddActive.dmSize = (short)Marshal.SizeOf(ddActive);
     ddInactive.dmSize = (short)Marshal.SizeOf(ddInactive);
     uint iDeviceCntr = 0;
     DISPLAY_DEVICE dd = new DISPLAY_DEVICE();
     dd.cb = Marshal.SizeOf(dd);
     while (EnumDisplayDevices(null, iDeviceCntr, ref dd, 0))
     {
         DEVMODE dMode = new DEVMODE();
         dMode.dmSize = (short)Marshal.SizeOf(dMode);
         if (EnumDisplaySettings(dd.DeviceName, ENUM_REGISTRY_SETTINGS, ref dMode))
         {
             if (dMode.dmPelsHeight > 0 && dMode.dmPelsWidth > 0)
             {
                 if ((dd.StateFlags & DisplayDeviceStateFlags.PrimaryDevice) ==
                      DisplayDeviceStateFlags.PrimaryDevice)
                 {
                     ddActive = dMode;
                     szActiveDeviceName = dd.DeviceName;
                 }
                 else
                 {
                     ddInactive = dMode;
                     szInactiveDeviceName = dd.DeviceName;
                 }
             }
         }
         iDeviceCntr++;
     }
 }
Ejemplo n.º 3
0
 static extern bool EnumDisplayDevices(string lpDevice,
        uint iDevNum, ref DISPLAY_DEVICE lpDisplayDevice, uint dwFlags);
Ejemplo n.º 4
0
 static extern bool EnumDisplayDevices(string lpDevice,
                                       uint iDevNum, ref DISPLAY_DEVICE lpDisplayDevice, uint dwFlags);