更改显示器分辩、刷新率 Procedure ChangeDisplay(width,height,Frequency:integer); var devmode:tDevicemode; begin if EnumDisplaySettings(nil,0,devmode) then begin devmode.dmfields:=dm_pelswidth OR dm_pelsheight OR dm_DisplayFrequency; if (devmode.dmDisplayFrequency<>frequency) or (screen.Width<>devmode.dmPelsWidth) then begin devmode.dmpelswidth:=width; {宽度} devmode.dmpelsheight:=height;{高度} devmode.dmDisplayFrequency:=frequency;{刷新率} ///返回一下就可以了 ChangeDisplaySettings(devmode,0); {更改设置} end; end; end;
Procedure ChangeDisplay(width,height,Frequency:integer);
var devmode:tDevicemode;
begin
if EnumDisplaySettings(nil,0,devmode) then
begin
devmode.dmfields:=dm_pelswidth OR dm_pelsheight OR dm_DisplayFrequency;
if (devmode.dmDisplayFrequency<>frequency) or (screen.Width<>devmode.dmPelsWidth) then
begin
devmode.dmpelswidth:=width; {宽度}
devmode.dmpelsheight:=height;{高度}
devmode.dmDisplayFrequency:=frequency;{刷新率} ///返回一下就可以了
ChangeDisplaySettings(devmode,0); {更改设置}
end;
end;
end;
代码如下
EnumDisplaySettings(nil,0,devicemode);
label1.Caption :=intToStr(DeviceMode.dmDisplayFrequency);
vDevMode: TDevMode;
begin
EnumDisplaySettings(nil, $FFFFFFFF, vDevMode);
Caption := IntToStr(vDevMode.dmDisplayFrequency);
end;
DeviceMode: TDeviceMode;result:integer;
begin
EnumDisplaySettings(nil, Cardinal(-1), DeviceMode);
result:=DeviceMode.dmDisplayFrequency;
showmessage(inttostr(result)+'hz'); {捕获屏幕刷新率}var
DeviceMode:TDeviceMode;result,iFrequency:integer;
begin
iFrequency:=85;
EnumDisplaySettings(nil,Cardinal(-1), DeviceMode);
DeviceMode.dmDisplayFrequency:=Cardinal(iFrequency);
result:=ChangeDisplaySettings(DeviceMode,CDS_UPDATEREGISTRY);
end;