
是否有可能从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”类?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)