|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2003/12/23 9:01:11 |
标题: |
请问如何获得和修改显示器的刷新频率! |
浏览:1663 |
|
加入我的收藏 |
楼主: |
各位大侠也许都知道如何修改显示器的分辨率,但一般在修改分辨率的时候,刷新频率也可能改变,请问如何改变显示器的刷新频率啊!
----------------------------------------------
李———— |
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2003/12/23 10:23:06 |
1楼: |
///设置分辨率 procedure TForm1.ChangeSreenDisplay(x, y: Integer); var //x,y为分辨率 lpDevMode : TDeviceMode; begin EnumDisplaySettings(nil, 0, lpDevMode); lpDevMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT or DM_DISPLAYFREQUENCY; lpDevMode.dmPelsWidth:=x; lpDevMode.dmPelsHeight:=y; lpDevMode.dmDisplayFlags:=DM_DISPLAYFREQUENCY; lpDevMode.dmDisplayFrequency:=85; //刷新频率 ChangeDisplaySettings(lpDevMode, CDS_UPDATEREGISTRY); end;
C++原代码: cs="当前分辨率为:"+String(Screen->Width)+AnsiString("*")+ String(Screen->Height) +"\n";
通过编辑注册表来手工输入显示器刷新频率: 选择HKEY_LOCAL_MACHINE \System\CurrentControlSet\Services \Class\Display\0000\Default, 双击RefreshRate即可输入刷新频率值;值为-1表示自动设定, 也可输入一个有效的刷新率值(如75,如果所输入的频率值不被你的 显示器或显示卡所支持,将出现不良后果,在修改前请参阅相关说明文档)。
----------------------------------------------
|
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2003/12/23 10:23:46 |
2楼: |
要:如何获取显示器的刷新频率 关键字:显示 频率 类 别:系统控制 --------------------------------------------------------------------------------
uses Windows, SysUtils;
...
// 这个函数返回的显示刷新率是以Hz为单位的 function GetDisplayFrequency: Integer; var DeviceMode: TDeviceMode;
begin EnumDisplaySettings(nil, Cardinal(-1), DeviceMode); Result := DeviceMode.dmDisplayFrequency; end;
----------------------------------------------
|
作者: |
bios (阿贡) |
★☆☆☆☆ |
-
|
盒子中级会员 |
|
2003/12/23 10:25:48 |
3楼: |
要得到显示器的分辨率,由下列程序得到: var x:longint; a:string; begin x := GetSystemMetrics(SM_CXSCREEN); Str(x,a); Label1.Caption := '显示器水平分辨率' + a; x := GetSystemMetrics(SM_CYSCREEN); Str(x,a); Label2.Caption := '显示器垂直分辨率' + a; end;
----------------------------------------------
|
|