读书人

C#程序中如何修改屏幕的分辨率

发布时间: 2012-05-10 16:02:39 作者: rapoo

C#程序中怎么修改屏幕的分辨率
C#程序中怎么修改屏幕的分辨率,哪位高手能解答下!

[解决办法]

C# code
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace 解决分辨率 {     public partial class Form1 : Form     {         //保存当前屏幕分辨率         int i = Screen.PrimaryScreen.Bounds.Width;         int j = Screen.PrimaryScreen.Bounds.Height;         public Form1()         {             InitializeComponent();         }         [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]         public struct DEVMODE         {             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]             public string dmDeviceName;             public short dmSpecVersion;             public short dmDriverVersion;             public short dmSize;             public short dmDriverExtra;             public int dmFields;             public short dmOrientation;             public short dmPaperSize;             public short dmPaperLength;             public short dmPaperWidth;             public short dmScale;             public short dmCopies;             public short dmDefaultSource;             public short dmPrintQuality;             public short dmColor;             public short dmDuplex;             public short dmYResolution;             public short dmTTOption;             public short dmCollate;             [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]             public string dmFormName;             public short dmLogPixels;             public int dmBitsPerPel;             public int dmPelsWidth;             public int dmPelsHeight;             public int dmDisplayFlags;             public int dmDisplayFrequency;         }         [DllImport("user32.dll", CharSet = CharSet.Auto)]         static extern int ChangeDisplaySettings([In] ref DEVMODE lpDevMode, int dwFlags);         [DllImport("user32.dll", CharSet = CharSet.Auto)]         static extern bool EnumDisplaySettings(string lpszDeviceName, Int32 iModeNum, ref DEVMODE lpDevMode);         void ChangeRes()         {             DEVMODE DevM = new DEVMODE();             DevM.dmSize = (short)Marshal.SizeOf(typeof(DEVMODE));             bool mybool;             mybool = EnumDisplaySettings(null, 0, ref DevM);             DevM.dmPelsWidth = 1024;//宽             DevM.dmPelsHeight = 768;//高             DevM.dmDisplayFrequency = 60;//刷新频率             DevM.dmBitsPerPel = 32;//颜色象素             long result = ChangeDisplaySettings(ref DevM, 0);         }         void FuYuan()         {             DEVMODE DevM = new DEVMODE();             DevM.dmSize = (short)Marshal.SizeOf(typeof(DEVMODE));             bool mybool;             mybool = EnumDisplaySettings(null, 0, ref DevM);             DevM.dmPelsWidth = i;//恢复宽             DevM.dmPelsHeight =j;//恢复高             DevM.dmDisplayFrequency = 60;//刷新频率             DevM.dmBitsPerPel = 32;//颜色象素             long result = ChangeDisplaySettings(ref DevM, 0);         }         private void Form1_Load(object sender, EventArgs e)         {             ChangeRes();         }         private void button1_Click(object sender, EventArgs e)         {             FuYuan();             this.Close();                   } 

读书人网 >C#

热点推荐