C# API 获取系统DPI缩放倍数跟分辨率大小

简介: 原文:C# API 获取系统DPI缩放倍数跟分辨率大小 using System; using System.Drawing; using System.
原文: C# API 获取系统DPI缩放倍数跟分辨率大小

using System;  
using System.Drawing;  
using System.Runtime.InteropServices;  
  
namespace XYDES  
{  
    public class PrimaryScreen  
    {  
        #region Win32 API  
                [DllImport("user32.dll")]  
                 static extern IntPtr GetDC(IntPtr ptr);  
                [DllImport("gdi32.dll")]  
                 static extern int GetDeviceCaps(  
                IntPtr hdc, // handle to DC  
                int nIndex // index of capability  
                );  
                [DllImport("user32.dll", EntryPoint = "ReleaseDC")]  
                 static extern IntPtr ReleaseDC(IntPtr hWnd, IntPtr hDc);  
        #endregion  
        #region DeviceCaps常量  
                const int HORZRES = 8;  
                const int VERTRES = 10;  
                const int LOGPIXELSX = 88;  
                const int LOGPIXELSY = 90;  
                const int DESKTOPVERTRES = 117;  
                const int DESKTOPHORZRES = 118;  
        #endregion  
 
        #region 属性  
        /// <summary>  
        /// 获取屏幕分辨率当前物理大小  
        /// </summary>  
           public static Size WorkingArea  
            {  
                get {  
                    IntPtr hdc = GetDC(IntPtr.Zero);  
                    Size size = new Size();  
                    size.Width = GetDeviceCaps(hdc, HORZRES);  
                    size.Height = GetDeviceCaps(hdc, VERTRES);  
                    ReleaseDC(IntPtr.Zero, hdc);  
                    return size;      
                }  
            }  
        /// <summary>  
           /// 当前系统DPI_X 大小 一般为96  
        /// </summary>  
            public static int DpiX  
            {  
                get  
                {  
                    IntPtr hdc = GetDC(IntPtr.Zero);  
                    int DpiX = GetDeviceCaps(hdc, LOGPIXELSX );  
                    ReleaseDC(IntPtr.Zero, hdc);  
                    return DpiX;  
                }  
            }  
        /// <summary>  
        /// 当前系统DPI_Y 大小 一般为96  
        /// </summary>  
            public static int DpiY  
            {  
                get  
                {  
                    IntPtr hdc = GetDC(IntPtr.Zero);  
                    int DpiX = GetDeviceCaps(hdc,LOGPIXELSY);  
                    ReleaseDC(IntPtr.Zero, hdc);  
                    return DpiX;  
                }  
            }  
        /// <summary>  
            /// 获取真实设置的桌面分辨率大小  
        /// </summary>  
            public static Size DESKTOP  
            {  
                get  
                {  
                    IntPtr hdc = GetDC(IntPtr.Zero);  
                    Size size = new Size();  
                    size.Width = GetDeviceCaps(hdc,DESKTOPHORZRES );  
                    size.Height = GetDeviceCaps(hdc, DESKTOPVERTRES);  
                    ReleaseDC(IntPtr.Zero, hdc);  
                    return size;      
                }  
            }  
  
            /// <summary>  
            /// 获取宽度缩放百分比  
            /// </summary>  
            public static float ScaleX  
            {  
                get  
                {  
                    IntPtr hdc = GetDC(IntPtr.Zero);  
                    int t = GetDeviceCaps(hdc, DESKTOPHORZRES);  
                    int d = GetDeviceCaps(hdc, HORZRES);  
                    float ScaleX = (float)GetDeviceCaps(hdc, DESKTOPHORZRES) / (float)GetDeviceCaps(hdc, HORZRES);   
                    ReleaseDC(IntPtr.Zero, hdc);  
                    return ScaleX;  
                }  
            }  
            /// <summary>  
            /// 获取高度缩放百分比  
            /// </summary>  
            public static float ScaleY  
            {  
                get  
                {  
                    IntPtr hdc = GetDC(IntPtr.Zero);  
                    float ScaleY = (float)(float)GetDeviceCaps(hdc, DESKTOPVERTRES) / (float)GetDeviceCaps(hdc, VERTRES);  
                    ReleaseDC(IntPtr.Zero, hdc);  
                    return ScaleY;  
                }  
            }  
       #endregion  
    }  
}  


目录
相关文章
|
6月前
|
数据采集 机器学习/深度学习 搜索推荐
利用通义大模型构建个性化推荐系统——从数据预处理到实时API部署
本文详细介绍了基于通义大模型构建个性化推荐系统的全流程,涵盖数据预处理、模型微调、实时部署及效果优化。通过采用Qwen-72B结合LoRA技术,实现电商场景下CTR提升58%,GMV增长12.7%。文章分析了特征工程、多任务学习和性能调优的关键步骤,并探讨内存优化与蒸馏实践。最后总结了大模型在推荐系统中的适用场景与局限性,提出未来向MoE架构和因果推断方向演进的建议。
1090 11
|
5月前
|
JSON 搜索推荐 算法
利用API提升电商用户体验:个性化推荐系统
在电商竞争激烈的当下,个性化推荐系统成为提升用户粘性与转化率的关键。本文详解如何通过API集成高效接入先进推荐算法,实现实时精准推荐,优化用户体验,提升业务增长。
236 0
|
3月前
|
算法 API 数据库
生鲜电商技术实践:基于保质期API的自动下架系统保障食品安全
基于保质期提醒API与自动化工作流,实现生鲜商品临期智能预警与自动下架。通过设定差异化预警阈值(如蔬菜2天、冷冻品7天),每日扫描数据库并触发下架指令,确保食品安全合规,降低损耗与客诉,提升运营效率。
286 0
|
4月前
|
监控 安全 API
京东 API 接口:打造高效京东店铺订单处理系统
在电商竞争激烈的环境下,京东店铺需提升订单处理效率以优化用户体验与收益。本文介绍如何利用京东开放平台的API接口,构建高效订单处理系统,涵盖订单查询、库存同步、物流跟踪等功能,助力商家实现自动化管理,显著提升运营效率与客户满意度。
270 0
|
4月前
|
机器学习/深度学习 人工智能 供应链
淘宝API智能补货系统:库存周转率提升50%的奥秘
在电商竞争激烈的当下,库存管理效率决定企业成败。淘宝API智能补货系统融合人工智能与淘宝开放接口,实现库存自动化管理,大幅提升库存周转率,降低运营成本,助力企业实现高效、智能、精益的供应链管理。
326 0
|
6月前
|
缓存 自然语言处理 监控
基于通义大模型的智能客服系统构建实战:从模型微调到API部署
本文详细解析了基于通义大模型的智能客服系统构建全流程,涵盖数据准备、模型微调、性能优化及API部署等关键环节。通过实战案例与代码演示,展示了如何针对客服场景优化训练数据、高效微调大模型、解决部署中的延迟与并发问题,以及构建完整的API服务与监控体系。文章还探讨了性能优化进阶技术,如模型量化压缩和缓存策略,并提供了安全与合规实践建议。最终总结显示,微调后模型意图识别准确率提升14.3%,QPS从12.3提升至86.7,延迟降低74%。
2025 15
|
5月前
|
机器学习/深度学习 JSON 监控
拼多多API库存预警系统:避免缺货损失千万!
在电商运营中,缺货可能导致订单流失与经济损失,拼多多推出的API库存预警系统可实时监控库存,及时预警,降低缺货风险。系统支持多语言集成,商家可快速构建自动化监控与补货流程,提升供应链效率,保障销售连续性。
384 0
|
5月前
|
缓存 算法 API
从 0 实现 API 接口签名验证系统:基于 HMAC-SHA256 的防篡改方案(附 Python 全代码)
本文介绍基于 的 API 接口签名验证系统,实现防篡改与防重放攻击,包含完整设计原理、签名生成规则及可运行的 Python 客户端与服务端代码,并提供安全性优化与部署建议。
|
8月前
|
存储 人工智能 Java
Spring AI与DeepSeek实战四:系统API调用
在AI应用开发中,工具调用是增强大模型能力的核心技术,通过让模型与外部API或工具交互,可实现实时信息检索(如天气查询、新闻获取)、系统操作(如创建任务、发送邮件)等功能;本文结合Spring AI与大模型,演示如何通过Tool Calling实现系统API调用,同时处理多轮对话中的会话记忆。
1588 57
|
5月前
|
人工智能 供应链 物联网
效率提升300%:开放银行API驱动电商分账系统的“零代码”革命
在数字经济背景下,开放银行API与电商生态深度融合,推动支付清算与分账系统从封闭走向开放。通过技术解耦与系统重构,实现资金流、信息流与业务流的高效协同,提升支付效率与分账灵活性,助力电商场景创新。本文从技术驱动力、重构路径、实践案例与未来趋势四方面,解析这一变革的核心逻辑与落地价值。