Resolution | refresh | show
The following code implements the ability to modify the display resolution and refresh frequency:
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 =;
[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);
}
Windows Form Designer generated code#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 = "Example of changing screen resolution";
}
#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);
}
}
}