zoukankan      html  css  js  c++  java
  • C#中改变显示器的分辨率

    C#中改变显示器的分辨率


    下面的代码实现修改显示器分辨率和刷新频率的功能:

    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Runtime.InteropServices;
     
    namespace ScreenResolution
    {
     
      public class Form1 : System.Windows.Forms.Form
      {
        public enum DMDO
        {
          DEFAULT = 0,
          D90 = 1,
          D180 = 2,
          D270 = 3
        }
     
        [StructLayout(LayoutKind.Sequential, CharSet=CharSet.Auto)]
          struct DEVMODE
        {
          public const int DM_DISPLAYFREQUENCY = 0x400000;
          public const int DM_PELSWIDTH = 0x80000;
          public const int DM_PELSHEIGHT = 0x100000;
          private const int CCHDEVICENAME = 32;
          private const int CCHFORMNAME = 32;
     
          [MarshalAs(UnmanagedType.ByValTStr, SizeConst=CCHDEVICENAME)]
          public string dmDeviceName;
          public short dmSpecVersion;
          public short dmDriverVersion;
          public short dmSize;
          public short dmDriverExtra;
          public int dmFields;
     
          public int dmPositionX;
          public int dmPositionY;
          public DMDO dmDisplayOrientation;
          public int dmDisplayFixedOutput;
     
          public short dmColor;
          public short dmDuplex;
          public short dmYResolution;
          public short dmTTOption;
          public short dmCollate;
          [MarshalAs(UnmanagedType.ByValTStr, SizeConst=CCHFORMNAME)]
          public string dmFormName;
          public short dmLogPixels;
          public int dmBitsPerPel;
          public int dmPelsWidth;
          public int dmPelsHeight;
          public int dmDisplayFlags;
          public int dmDisplayFrequency;
          public int dmICMMethod;
          public int dmICMIntent;
          public int dmMediaType;
          public int dmDitherType;
          public int dmReserved1;
          public int dmReserved2;
          public int dmPanningWidth;
          public int dmPanningHeight;
        }
     
        [DllImport("user32.dll", CharSet=CharSet.Auto)]
          //static extern int ChangeDisplaySettings( DEVMODE lpDevMode,  int dwFlags);
     
        static extern int ChangeDisplaySettings( [In] ref DEVMODE lpDevMode,  int dwFlags);
        private System.ComponentModel.Container components = null;
        public Form1()
        {
          InitializeComponent();
        }
        protected override void Dispose( bool disposing )
        {
          if( disposing )
          {
            if (components != null)
            {
              components.Dispose();
            }
          }
          base.Dispose( disposing );
        }
     
        #region Windows Form Designer generated code
        private void InitializeComponent()
        {
          this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
          this.ClientSize = new System.Drawing.Size(292, 273);
          this.Text = "改变屏幕分辨率的例子";
     
        }
        #endregion
     
        static void Main()
        {
          Form1 r = new Form1();
          r.ChangeRes();
          Application.Run(new Form1());
        }
     
        void ChangeRes()
        {
          Form1 t = new Form1();
          long RetVal=0;
          DEVMODE dm = new DEVMODE();
          dm.dmSize= (short)Marshal.SizeOf(typeof(DEVMODE));
          dm.dmPelsWidth = 1024;
          dm.dmPelsHeight= 768;
          dm.dmDisplayFrequency=85;
          dm.dmFields = DEVMODE.DM_PELSWIDTH | DEVMODE.DM_PELSHEIGHT | DEVMODE.DM_DISPLAYFREQUENCY;
          RetVal = ChangeDisplaySettings(ref dm, 0);
        }
      }
    } 
  • 相关阅读:
    【转】sublime text 2中Emmet插件8个常用的技巧
    程序猿崛起3——这一次,我用行动说话
    《Effective Java》学习笔记——积累和激励
    程序猿崛起2——互联网时代下的新潮流和新活法
    【非技术】做好属于自己的作品,然后让世界所有人都记住你
    【非技术】实现理想的第一步就是做自己
    【原创】程序猿崛起
    人生苦短,我用python——当我在玩python的时候我玩些什么
    一个新人如何学习在大型系统中添加新功能和Debug
    一个应届毕业生入职30天后的工作总结——作息
  • 原文地址:https://www.cnblogs.com/jhabb/p/1880754.html
Copyright © 2011-2022 走看看