delphi6,编写一个程序要改变windows的分辨率和适配器刷新率?
解决方案 »
- FillRect(Canvas.Handle, LTextRect, Clblue);为什么 无效?大侠指点下
- [转帖]建国大业
- fast report 如何在程序运行时进入报表的设计状态?
- 急!求教一个关于TListView WorkArea的问题,VCL控件高手请进。
- 简单问题:怎样给RichEdit中加上背景图片?
- 在线等.如能帮我马上给分.
- 如何设置我的应用程序所能打开的文件的图标?
- 哪位大侠帮我看看我这个程序的指针哪错了,
- 有什么好办法可以计算出目标图像在原图像中的坐标
- 如何通过ctrl+shift在运行的程序中改语系?
- 请问如何获得文件的创建时间,修改时间以及创建作者等信息
- 什么控件能显示ani动画?
function GetDisplayFrequency: Integer;//得到刷新率
var
DeviceMode: TDeviceMode;
begin
EnumDisplaySettings(nil, Cardinal(-1), DeviceMode);
Result := DeviceMode.dmDisplayFrequency;
end;procedure ChangeDisplayFrequency(iFrequency:Integer);//更改刷新率
var
DeviceMode: TDeviceMode;
begin
EnumDisplaySettings(nil,Cardinal(-1), DeviceMode);
DeviceMode.dmDisplayFrequency:=Cardinal(iFrequency);
ChangeDisplaySettings(DeviceMode,CDS_UPDATEREGISTRY);
end;
分辨率:
function DynamicResolution(X, Y: word): BOOL;
var
lpDevMode: TDeviceMode;
begin
Result := EnumDisplaySettings(nil, 0, lpDevMode);
if Result then
begin
lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
lpDevMode.dmPelsWidth := X;
lpDevMode.dmPelsHeight := Y;
Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
end
end;//调用
procedure TForm1.Button2Click(Sender: TObject);
begin
if DynamicResolution(800, 600) then
ShowMessage('Now is 800*600');
end;
var
devmode:tDevicemode;
begin
ifscreen.width<>orignwidththen
begin
ifEnumDisplaySettings(nil,0,devmode)then
begin
devmode.dmfields:=dm_pelswidthORdm_pelsheight;
devmode.dmpelswidth:=orignwidth;{宽度}
devmode.dmpelsheight:=orignheight;{高度}
ChangeDisplaySettings(devmode,0);{更改设置}
end;
end;
end;