有没有办法检索设备的DPI而不使用GDI +WinForms“graphics”类?

有没有办法检索设备的DPI而不使用GDI +WinForms“graphics”类?,第1张

概述有没有办法检索设备的DPI而不使用GDI + / WinForms“graphics”类?

是否有可能从C#使用本机赢取API调用我的设备DPI?

我知道如何从windows窗体应用程序获得dpi,我现在的代码是:

Graphics g = Graphics.FromImage(new Bitmap(10,10)); var scaleX = g.DpiX / 96.0f; var scaleY = g.DpiY / 96.0f;

我想知道如果这是一个赢得API呼叫,可以使事情变得更容易。

为什么在通过Shell32读取公共快捷方式时遇到E_ACCESSDENIED?

如何解决在C#windows服务处理泄漏

如何导出windows系统和应用程序事件日志?

.NET Systeminformation.PrimaryMonitorMaximizedwindowsize显示大于PrimaryMonitorSize

该键集没有定义

如何在* config文件中保存键值

禁用交换(分页文件)以确保一切都在内存中

从数据库中提取多个图像到PictureBox中

找出键盘布局何时更改

.net 4.5正确的windows服务启动方法

如何对Win32_DesktopMonitor类进行WMI查询 ?

PixelsPerXLogicalinch

Data type: uint32 Access type: Read-only QualifIErs: Units (Pixels per Logical Inch)

显示器沿x轴(水平方向)的分辨率。

PixelsPerYLogicalinch

Data type: uint32 Access type: Read-only QualifIErs: Units (Pixels per Logical Inch)

沿着显示器的y轴(垂直方向)的分辨率。

您可以使用它类似于这个问题 :

ManagementObjectSearcher monitorObjectSearch = new ManagementObjectSearcher("SELECT * FROM Win32_DesktopMonitor"); foreach (ManagementObject monitor in monitorObjectSearch.Get()) { DeBUG.Writeline(monitor["PixelsPerXLogicalinch"); DeBUG.Writeline(monitor["PixelsPerYLogicalinch"); }

还有windows API路由与GetDeviceCaps ,但我已经读过在windows 7上有一些问题,所以你的里程可能会有所不同。

还有Direct2D GetDesktopDpi ( 由Alex提到 ),它看起来像需要做一些COM Interop调用,可能会也可能不会干净,只能运行Direct2D可用的windows版本。 有关Direct2D和.NET的其他 信息 。

有一个API, http://msdn.microsoft.com/en-us/library/windows/desktop/dd371316 (v=vs.85) .aspx调用getDesktopAPI,但我从来没有使用它。 我认为这和互 *** 作一样简单。

总结

以上是内存溢出为你收集整理的有没有办法检索设备的DPI而不使用GDI + / WinForms“graphics”类?全部内容,希望文章能够帮你解决有没有办法检索设备的DPI而不使用GDI + / WinForms“graphics”类?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1279011.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-09
下一篇2022-06-09

发表评论

登录后才能评论

评论列表(0条)

    保存