2k,4k 高分屏显示器DPI缩放检测完整版

news/2024/11/30 1:02:05/

最近在做高DPI显示器的适配,由于很多用户不知道自己的显示器是否有dpi缩放。于是做了这么个小工具,专门用于系统dpi缩放参数的检测。

程序下载:链接: https://pan.baidu.com/s/1XR2nvwYWFKd6DH6PMCeNyQ 提取码: hvff

程序运行效果图:

 

如果修改一下程序属性里的兼容性,更改高dpi设置,高dpi缩放替代,选择 系统,那么运行效果也会不同

如图

 

程序下载:链接: https://pan.baidu.com/s/1XR2nvwYWFKd6DH6PMCeNyQ 提取码: hvff

 

源码分享:

function getDPI(var h1:integer; var h2: integer): integer;
var
  DC: HDC;
begin
  DC := GetDC(0);
  Result := GetDeviceCaps(DC, logpixelsx); //获取逻辑dpi,如果由系统负责缩放那么获取的值固定为96
  h1:=  GetDeviceCaps(DC, DESKTOPHORZRES); //当程序属性,兼容,更改高dpi设置,高dpi缩放替代,选择 应用程序,那么 h1,h2相同
  h2:=  GetDeviceCaps(DC, HORZRES);   //当程序属性,兼容,更改高dpi设置,高dpi缩放替代,选择 系统,那么 h2比 h1 小
  ReleaseDC(0, DC);
end;


procedure TForm1.Button1Click(Sender: TObject);
var k,h1,h2,j: integer;
    s: string;
begin
   k:=    getDPI(h1,h2);

    memo1.Lines.Add('屏幕实际像素:'+ h1.ToString+ ' 屏幕逻辑像素:'+ h2.ToString);
   memo1.Lines.Add('当前逻辑DPI(每英寸点数)是:'+ inttostr(k));
   if h1=h2 then
    begin
        j:= round(k / 96*100);
        if j=100 then
         memo1.Lines.Add('当前程序没有缩放。')
        else
          memo1.Lines.Add('当前程序缩放由程序自己完成。');
     end   else  begin
                  j:= round(h1 / h2*100);
                  memo1.Lines.Add('当前程序缩放由操作系统完成。');
                 end;

        if j=100 then
         s:= s+ '当前DPI没有放大,值为:'+ j.ToString +'%'
          else
           s:= '当前DPI已经放大,值为:'+ j.ToString +'%';
        memo1.Lines.Add(s );


end;

 

源码下载:链接: https://pan.baidu.com/s/1DBi-saG_0Lh4Y-mtTM_7zA 提取码: 5ea7

代码比较简单,主要是程序的缩放主体不同的话判断逻辑上有区别。

 


http://www.ppmy.cn/news/135404.html

相关文章

Unity帧率、屏幕刷新率

帧率 帧:影像动画中最小单位的单副影像画面,相当于电影胶片上的每一个镜头 帧率:图形处理器每秒更新帧的次数 帧率单位:帧每秒(F/S, Frame pre second,简称 FPS) 帧率(Frame rate) 帧数(Frames)/时间(Time) 帧率大…

240Hz超高刷新率加持,HKC疾风SG27C PLUS电竞显示器的使用新体验

近日,在众多玩家的翘首以待下,绝地求生测试服终于迎来了7.2版本的更新,官方也放出了一段此次更新的解读视频,介绍新版本的更新内容。其中,包括了竞技模式上线、武器平衡性调整等,这些更新内容不久之后都将在…

很多人似乎对液晶刷新率存在误解

很多人似乎对液晶刷新率存在误解 2016-09-16 劉審幾 文章来源 阅 1156 转 2 转藏到我的图书馆 微信 分享: 首先,引用一篇文章,写的很清楚,CRT和液晶的显示原理是不一样的,液晶的画面变动是通过液晶体旋转角度改变&…

显示器屏幕的刷新率hz和帧数fps有什么区别?

关于游戏帧数FPS值和屏幕刷新率,相信是电竞玩家比较关心的话题了。如果我们需要了解刷新率和帧数的区别,那么我们就需要知道它们原本是什么意思!下面装机之家科普一下. 帧数FPS 一般就是我们所说一秒钟内画面刷新的速度,60fps就…

win7系统调整屏幕刷新率方法

屏幕刷新率指的就是屏幕上的图像每秒钟出现的次数,刷新频率越高,屏幕上图像闪烁感就越小,稳定性也就越高,那么win7系统中的屏幕刷新率该怎么去调整呢?小编今天带来的就是一个win7系统的屏幕刷新率方法。 win7系统调整屏幕刷新率…

计算机更改刷新频率,电脑屏幕刷新率怎么调节?怎么更改电脑屏幕刷新率?

我们平时经常会使用电脑,有时候如果电脑端的屏幕刷新率太低,就会产生残留画面,如果刷新率天地,又会出现屏幕闪烁的现象,这两者都会影响我们使用电脑,那如何改善这种情况,调整屏幕属性就亟待解决…

144hz刷新率到底有多快?看看这两款电竞屏就知道了

近年来,随着电竞游戏产业的快速发展,全球范围内不断上演着一轮又一轮电竞热,比如当下大热的绝地求生、英雄联盟、斗罗大陆、剑网3等等,都是竞技性比较强的游戏,对抗往往很激烈,也因此颇受游戏玩家欢迎。 …

android 查看 屏幕刷新率,屏幕刷新率检查app

屏幕刷新率检查app是一款可以帮助用户了解自己手机刷新率的软件,虽然屏幕刷新率对手机整体的性能没有影响,但是对于用户的眼睛视力还是有影响的,据说,刷新率越高,那么对眼睛也会更好,可以减少对视力的伤害&…