Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Menjanje rezolucije

[es] :: .NET :: Menjanje rezolucije

[ Pregleda: 2508 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

logic_rabbit
Radenko Zec
banjaluka

Član broj: 74458
Poruke: 271
*.lanaco.com.



+1 Profil

icon Menjanje rezolucije01.08.2006. u 08:05 - pre 216 meseci
Da li neko zna kako promeniti rezoluciju monitora i refresh rate u c# po mogucnosti bez pozivanja api-ja?
Ako neko zna i sa pozivanjem api-ja bilo bi korisno?
logic_rabbit (MCAD,MCSD,MCT,MCTS-
Windows development,MCPD)
 
Odgovor na temu

kleo
Banja Luka

Član broj: 57146
Poruke: 33
*.broadband.blic.net.

ICQ: 255471549


Profil

icon Re: Menjanje rezolucije01.08.2006. u 10:48 - pre 216 meseci
//API...
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;
};



class User_32
{
[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;
}


namespace Resolution
{
class CResolution
{
public 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 process your request");
MessageBox.Show("Description: Unable To Process Your Request. Sorry For This Inconvenience.","Information",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
else
{
iRet = User_32.ChangeDisplaySettings (ref dm, User_32.CDS_UPDATEREGISTRY);

switch (iRet)
{
case User_32.DISP_CHANGE_SUCCESSFUL:
{
break;

//successfull change
}
case User_32.DISP_CHANGE_RESTART:
{

MessageBox.Show("Description: You Need To Reboot For The Change To Happen.\n If You Feel Any Problem After Rebooting Your Machine\nThen Try To Change Resolution In Safe Mode.","Information",MessageBoxButtons.OK,MessageBoxIcon.Information);
break;
//windows 9x series you have to restart
}
default:
{

MessageBox.Show("Description: Failed To Change The Resolution.","Information",MessageBoxButtons.OK,MessageBoxIcon.Information);
break;
//failed to change
}
}
}

}
}
}
}
// negdje u drugoj klasi
void setupresolution()
{
Screen Srn=Screen.PrimaryScreen;
oldHeight=Srn.Bounds.Height;
oldWidth=Srn.Bounds.Width;

if(Srn.Bounds.Width<1024 ||Srn.Bounds.Height<768)
{
try
{
Resolution.CResolution ChangeRes=new Resolution.CResolution(1024,768);
}
catch
{}
}

}
// google !!!
 
Odgovor na temu

logic_rabbit
Radenko Zec
banjaluka

Član broj: 74458
Poruke: 271
*.lanaco.com.



+1 Profil

icon Re: Menjanje rezolucije01.08.2006. u 13:50 - pre 216 meseci
Nije lose imam nesto slicno ali nema refresh rate?
I da mi je kroz c sharp bez pozivanja api?
logic_rabbit (MCAD,MCSD,MCT,MCTS-
Windows development,MCPD)
 
Odgovor na temu

[es] :: .NET :: Menjanje rezolucije

[ Pregleda: 2508 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.