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

转载 2006年05月18日 20:49:00
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); } } }


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=722220

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

using System; using System.Drawing; using System.Collections; using System.ComponentModel; using Sys...

C#中改变显示器的分辨率,C#源代码

  • 2009年04月19日 16:03
  • 2.53MB
  • 下载

C#获取显示器的分辨率

  • 2009年05月15日 22:10
  • 46KB
  • 下载

未知显示器设置屏幕分辨率和屏幕扩展设置

今天用屏幕扩展,结果在显示器上的屏幕分辨率只能显示1024*768,很不协调,于是百度了一下,看得了一个解决方案,这里记录下来,以便以后不时之需。 原文地址:http://blog.csdn.n...

改变显示器分辨率VB6.0

  • 2011年11月07日 22:42
  • 2KB
  • 下载

调用API函数改变显示器分辨率

  • 2004年01月11日 00:00
  • 10KB
  • 下载

单片机驱动52寸液晶显示器、触摸屏(1366X768分辨率)

单片机驱动52寸液晶显示器、触摸屏(1366X768分辨率) 界面实现“0”代码、“0”编程如"、制作PPT" 人机界面组态软件HMImaker制作好操作与监控画面,下载到控制板,通过串口与用...
  • vgalcd
  • vgalcd
  • 2013年03月20日 09:19
  • 653

C#操作改变屏幕分辨率代码

  • 2009年05月25日 14:35
  • 46KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章: C#中改变显示器的分辨率
举报原因:
原因补充:

(最多只允许输入30个字)