Logo

Logo

C# winform 获取屏幕分辨率缩放率,获取屏幕设置分辨率

Pastore Antonio
Pastore Antonio 2025年06月13日
935 阅读 0 评论 约 1006 字 阅读约 3 分钟

解决问题:1)当需要抓取显示器分辨率的缩放比例时。2)当屏幕显示缩放设置不等于100%,导致分辨率改变,Screen.PrimaryScreen.Bounds抓取不到实际设置的分辨率时。

解决方案:使用GetDeviceCaps函数。

/// <summary>
        /// 设备数据函数
        /// </summary>
        /// <param name="hdc"></param>
        /// <param name="nIndex"></param>
        /// <returns></returns>
        [DllImport("gdi32.dll", EntryPoint = "GetDeviceCaps", SetLastError = true)]
        public static extern int GetDeviceCaps(IntPtr hdc, int nIndex);

        private static double GetScreenScalingFactor()
        {
            var g = Graphics.FromHwnd(IntPtr.Zero);
            IntPtr desktop = g.GetHdc();
            var physicalScreenHeight = GetDeviceCaps(desktop, 117);//硬件显示器分辨率实际设置的高
            var physicalScreenWidth = GetDeviceCaps(desktop, 118);//硬件显示器分辨率实际设置的宽
            var screenScalingFactor = (double)physicalScreenHeight / Screen.PrimaryScreen.Bounds.Height;//将实际的高除以抓取的换算过的高就等于缩放率,同理当需要获取实际宽高时,直接获取函数结果即可
            return screenScalingFactor;
        }
查看完整代码

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
部分文章可能存在转载,如果涉及到侵权,请联系删除文章。

留言板

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

2 + 6 = ?

探索AIGC相关的精彩内容,共 15 篇文章

Azure AI 服务之语音识别

简介 Azure AI 服务中的语音识别 API 是微软提供的一项先进技术,旨在帮助开发者轻松实现语 ... C# winform 获取屏幕分辨率缩放率,获取屏幕设置分辨率

2026-02-17 · Xzavier Aaron
MCP | 一文详解什么是 MCP以及 MCP 可以做什么

一、什么是 MCP MCP(Model Context Protocol)是一个专为大型语言模型(L ... C# winform 获取屏幕分辨率缩放率,获取屏幕设置分辨率

2026-02-14 · Shen, Luke
你的工作流程,值得一个“全自动数字分身”:录制、截图、成文,一气呵成

一、一句话认识 TestFlow Recorder 在数字化工作环境中,如何准确记录操作步骤并生成清 ... C# winform 获取屏幕分辨率缩放率,获取屏幕设置分辨率

2026-02-14 · Xzavier Aaron
Flowise 前端框架配置指南

用户需求 问题:有没有适合配置 Flowise 的前端框架? 目标:寻找类似 Open WebUI ... C# winform 获取屏幕分辨率缩放率,获取屏幕设置分辨率

2026-02-14 · Xzavier Aaron