• 技术文章 >类库下载 >C#类库

    C# 代码调整屏幕分辨率

    高洛峰高洛峰2016-10-13 16:27:28原创1687
    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();

    }

    php入门到就业线上直播课:查看学习

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    上一篇:C#抓取ZigBee串口数据代码 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• C# 属性访问器• c# 特性• C# 在腾讯的发展• C#读取文件夹特定文件的方法• C# 托盘程序 实例 双击显示窗体,最小化到托盘
    1/1

    PHP中文网