تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
لتغيير دقة العرض Screen Resolution
#1
كاتب الموضوع : Boutemine Oualid

السلام عليكم ورحمة الله و بركاته

كود :
using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Sequential)]
public struct DEVMODE1
{
[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 short 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")]
public static extern int EnumDisplaySettings (string deviceName, int modeNum, ref DEVMODE1 devMode );
[DllImport("user32.dll")]
public static extern int ChangeDisplaySettings(ref DEVMODE1 devMode, int flags);
public const int ENUM_CURRENT_SETTINGS = -1;
public const int CDS_UPDATEREGISTRY = 0x01;
public const int CDS_TEST = 0x02;
public const int DISP_CHANGE_SUCCESSFUL = 0;
public const int DISP_CHANGE_RESTART = 1;
public const int DISP_CHANGE_FAILED = -1;
public void CResolution(int a,int b)
{
Screen screen = Screen.PrimaryScreen;


int iWidth =a;
int iHeight =b;

DEVMODE1 dm = new DEVMODE1();
dm.dmDeviceName = new String (new char[32]);
dm.dmFormName = new String (new char[32]);
dm.dmSize = (short)Marshal.SizeOf (dm);
if (0 != User_32.EnumDisplaySettings (null, User_32.ENUM_CURRENT_SETTINGS, ref dm))
{

dm.dmPelsWidth = iWidth;
dm.dmPelsHeight = iHeight;
int iRet = User_32.ChangeDisplaySettings (ref dm, User_32.CDS_TEST);
if (iRet == User_32.DISP_CHANGE_FAILED)
MessageBox.Show("Unable to change screen resolution");
else
{
iRet = User_32.ChangeDisplaySettings (ref dm, User_32.CDS_UPDATEREGISTRY);
switch (iRet)
{
case User_32.DISP_CHANGE_SUCCESSFUL:
{
break;
// Changed successfully
}
case User_32.DISP_CHANGE_RESTART:
{

MessageBox.Show("Changes takes effect after system reboot.","Information",MessageBoxButtons.OK,MessageBoxIcon.Information);
break;
// windows 9x, Reboot required.
}
default:
{

MessageBox.Show("Screen resolution changes failed.","Information",MessageBoxButtons.OK,MessageBoxIcon.Information);
break;
// Failed
}
}
}
}
}
}}}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  مثال بسيط لتغيير طريقة استخدام اداة العنان Label مع الشرح RaggiTech 0 803 20-10-12, 11:50 AM
آخر رد: RaggiTech
  Get Screen Snapshot RaggiTech 0 517 17-10-12, 10:19 PM
آخر رد: RaggiTech
  نسخ صورة النافذه المفتوحه Screen capture RaggiTech 0 362 17-10-12, 08:27 PM
آخر رد: RaggiTech
  كود لتغيير خلفية قرص و الأيكون الخاص به RaggiTech 0 258 17-10-12, 07:08 PM
آخر رد: RaggiTech
  معرفة لغة العرض الخاصة بنظام التشغيل ويندوز RaggiTech 0 364 17-10-12, 06:48 PM
آخر رد: RaggiTech
  لتغيير لغة الكتابة الافتراضية للتطبيق RaggiTech 0 260 17-10-12, 06:05 PM
آخر رد: RaggiTech
  لتغيير لون الخط والخلفية في Console Application RaggiTech 0 409 17-10-12, 05:27 PM
آخر رد: RaggiTech
  لتغيير حجم الصورة RaggiTech 0 301 17-10-12, 05:27 PM
آخر رد: RaggiTech

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم