using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Windows;
using System.Runtime.InteropServices;
namespace SetWindowsResolution
{
class Program
{
static string[] KeyValues = { "dmPelsWidth", "dmPelsHeight", "dmDisplayFrequency", "dmBitsPerPel" };
static string[] OldKeyValues = { "dmPelsWidth", "dmPelsHeight", "dmDisplayFrequency", "dmBitsPerPel" };
static int Main(string[] args)
{
if((ReadConfig("config.ini"))==false)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Read Config.ini Information Err!!");
Console.ResetColor();
return 1;
}
SetResolution();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Windows System Resolution Finish!!");
Console.ResetColor();
return 0;
}
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([In] ref DEVMODE lpDevMode, int dwFlags);
static void SetResolution()
{
long RetVal = 0;
DEVMODE dm = new DEVMODE();
dm.dmSize=(short)Marshal.SizeOf(typeof(DEVMODE));
dm.dmPelsWidth = Convert.ToInt32(KeyValues[0]);
dm.dmPelsHeight = Convert.ToInt32(KeyValues[1]);
dm.dmDisplayFrequency = Convert.ToInt32(KeyValues[2]);
dm.dmFields = DEVMODE.DM_PELSWIDTH | DEVMODE.DM_PELSHEIGHT | DEVMODE.DM_DISPLAYFREQUENCY;
RetVal = ChangeDisplaySettings(ref dm,0);
}
static bool ReadNowResolution()
{
bool Flag = false;
return Flag;
}
static bool ReadConfig(string FileName)
{
bool Flag = false;
try
{
FileStream fs = new FileStream(FileName,FileMode.Open,FileAccess.Read);
StreamReader sr = new StreamReader(fs,Encoding.Default);
string Temp = string.Empty;
string[] FccStr = { "dmPelsWidth", "dmPelsHeight", "dmDisplayFrequency", "dmBitsPerPel" };
while((Temp=sr.ReadLine())!=null)
{
string[] Array = Temp.Split(new string[] { "=" }, StringSplitOptions.RemoveEmptyEntries);
int n = 0;
foreach(string str in FccStr)
{
if(str==Array[0].Trim())
{
KeyValues[n] = Array[1];
}
n++;
}
}
sr.Close();
fs.Close();
Flag = true;
}
catch(Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex.Message);
Flag = false;
Console.ResetColor();
return Flag;
}
return Flag;
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Windows;
using System.Runtime.InteropServices;
namespace SetWindowsResolution
{
class Program
{
static string[] KeyValues = { "dmPelsWidth", "dmPelsHeight", "dmDisplayFrequency", "dmBitsPerPel" };
static string[] OldKeyValues = { "dmPelsWidth", "dmPelsHeight", "dmDisplayFrequency", "dmBitsPerPel" };
static int Main(string[] args)
{
if((ReadConfig("config.ini"))==false)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Read Config.ini Information Err!!");
Console.ResetColor();
return 1;
}
SetResolution();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Windows System Resolution Finish!!");
Console.ResetColor();
return 0;
}
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([In] ref DEVMODE lpDevMode, int dwFlags);
static void SetResolution()
{
long RetVal = 0;
DEVMODE dm = new DEVMODE();
dm.dmSize=(short)Marshal.SizeOf(typeof(DEVMODE));
dm.dmPelsWidth = Convert.ToInt32(KeyValues[0]);
dm.dmPelsHeight = Convert.ToInt32(KeyValues[1]);
dm.dmDisplayFrequency = Convert.ToInt32(KeyValues[2]);
dm.dmFields = DEVMODE.DM_PELSWIDTH | DEVMODE.DM_PELSHEIGHT | DEVMODE.DM_DISPLAYFREQUENCY;
RetVal = ChangeDisplaySettings(ref dm,0);
}
static bool ReadNowResolution()
{
bool Flag = false;
return Flag;
}
static bool ReadConfig(string FileName)
{
bool Flag = false;
try
{
FileStream fs = new FileStream(FileName,FileMode.Open,FileAccess.Read);
StreamReader sr = new StreamReader(fs,Encoding.Default);
string Temp = string.Empty;
string[] FccStr = { "dmPelsWidth", "dmPelsHeight", "dmDisplayFrequency", "dmBitsPerPel" };
while((Temp=sr.ReadLine())!=null)
{
string[] Array = Temp.Split(new string[] { "=" }, StringSplitOptions.RemoveEmptyEntries);
int n = 0;
foreach(string str in FccStr)
{
if(str==Array[0].Trim())
{
KeyValues[n] = Array[1];
}
n++;
}
}
sr.Close();
fs.Close();
Flag = true;
}
catch(Exception ex)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(ex.Message);
Flag = false;
Console.ResetColor();
return Flag;
}
return Flag;
}
}
}