C#遍历设置计算机分辨率
来源:互联网 发布:索尼xperiaz1手机网络 编辑:程序博客网 时间:2024/06/05 20:56
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;using System.Threading;namespace CPResolution{ 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; } class Program { [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, int iModeNum, ref DEVMODE lpDevMode); static List<DEVMODE> ResolutionMode = new List<DEVMODE>(); static void ChangeScreenResolution(int PelsWidth, int PelsHeight, int Frequency) { //Form1 t = new Form1(); long RetVal = 0; DEVMODE dm = new DEVMODE(); dm.dmSize = (short)Marshal.SizeOf(typeof(DEVMODE)); dm.dmPelsWidth = PelsWidth; dm.dmPelsHeight = PelsHeight; dm.dmDisplayFrequency = Frequency; dm.dmFields = DEVMODE.DM_PELSWIDTH | DEVMODE.DM_PELSHEIGHT | DEVMODE.DM_DISPLAYFREQUENCY; RetVal = ChangeDisplaySettings(ref dm, 0); if (RetVal == 0) { Console.WriteLine("width:" + PelsWidth + ",Height:" + PelsHeight + ",Frequency:" + Frequency); } } private static List<DEVMODE> GetFullDisplaySetting() { DEVMODE lpDevMode = new DEVMODE(); lpDevMode.dmDriverExtra = 0; lpDevMode.dmSize = (short)Marshal.SizeOf(typeof(DEVMODE)); lpDevMode.dmDriverExtra = 0; try { int index = 0; while (EnumDisplaySettings(null, index, ref lpDevMode)) { if (lpDevMode.dmPelsHeight >= 600 && lpDevMode.dmPelsWidth >= 800) { ResolutionMode.Add(lpDevMode); } index++; } return ResolutionMode; } catch { return null; } } static void Main(string[] args) { List<DEVMODE> mode = GetFullDisplaySetting(); foreach(DEVMODE Reso in mode) { ChangeScreenResolution(Reso.dmPelsWidth,Reso.dmPelsHeight,Reso.dmDisplayFrequency); Thread.Sleep(5000); } } }}
0 0
- C#遍历设置计算机分辨率
- C#实现分辨率设置
- 计算机的分辨率~
- ubuntu下如何给通过hdmi连接电视机的计算机强制设置1920*1080分辨率
- 【计算机视觉】关于用opencv 设置摄像头读分辨率问题的若干说明
- 终端分辨率设置
- 设置分辨率的批处理
- Mac os分辨率设置
- Ubuntu10.04 设置分辨率
- ubuntu8.04分辨率设置
- Ubuntu设置分辨率
- Ubuntu10.04 设置分辨率
- Ubuntu分辨率设置
- Ubuntu_ubuntu显示分辨率设置
- ubuntu分辨率设置 12.04
- ubuntu分辨率设置
- Ubuntu11设置VGA分辨率
- ubuntu分辨率设置
- SIM900A基站定位调试笔记
- Ubuntu Linux平台下Django1.6.8开发环境搭建
- 特征生成
- jdk的设置及安装android studio提示does not point to a valid jvm问题
- JProfiler 解决 Java 服务器的性能跟踪
- C#遍历设置计算机分辨率
- hdu 4542 打表+含k个约数最小数
- Java探索之旅(9)——数据和方法的可见性
- Java反射机制
- 3.struts中的注解
- Yii 面包屑制作
- xdebug 安装
- 性能调优攻略
- 第十周项目2-M$pszi$y是嘛意思?