DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: luismasgoret
今日帖子: 1
在线用户: 3
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 xiuluodao (修罗道) ★☆☆☆☆ -
普通会员
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;
----------------------------------------------
按此在新窗口浏览图片
按此在新窗口浏览图片
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行72.26563毫秒 RSS