uses Windows, SysUtils; ... // 这个函数返回的显示刷新率是以Hz为单位的 function GetDisplayFrequency: Integer; var DeviceMode: TDeviceMode; begin EnumDisplaySettings(nil, Cardinal(-1), DeviceMode); Result := DeviceMode.dmDisplayFrequency; end;
to Linux2001:这贴又浮上来了~~ ^o^还没搞定?!
to Linux2001: 本来我是不想说di呀~~这里高手如云呀~经测试 wylove 的代码,完全正常!测试环境:Win2k中文版是不是你没有设置监视器---没有设置刷新率!!~~赶快溜~~~大侠来了要骂人~ :-)
是不是你想要的:procedure GetDisplayFrequency(List: TStrings); var DeviceMode: TDeviceMode; Index: Integer; begin Index := 0; while EnumDisplaySettings(nil, Index, DeviceMode) do with DeviceMode do begin List.Append(Format('色深=%d,显示宽度=%d,显示高度=%d,显示频率=%d', [dmBitsPerPel,dmPelsWidth,dmPelsHeight,dmDisplayFrequency])); Inc(Index); end; end;procedure TForm1.Button1Click(Sender: TObject); begin GetDisplayFrequency(Memo1.Lines); end;
具体函数:SetDisplayMode
Windows, SysUtils; ... // 这个函数返回的显示刷新率是以Hz为单位的
function GetDisplayFrequency: Integer;
var
DeviceMode: TDeviceMode; begin
EnumDisplaySettings(nil, Cardinal(-1), DeviceMode);
Result := DeviceMode.dmDisplayFrequency;
end;
var
DeviceMode: TDeviceMode;
Index: Integer;
begin
Index := 0;
while EnumDisplaySettings(nil, Index, DeviceMode) do
with DeviceMode do
begin
List.Append(Format('色深=%d,显示宽度=%d,显示高度=%d,显示频率=%d',
[dmBitsPerPel,dmPelsWidth,dmPelsHeight,dmDisplayFrequency])); Inc(Index);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
GetDisplayFrequency(Memo1.Lines);
end;