C#计算屏幕的物理宽和高

            var mc = new ManagementClass("Win32_DesktopMonitor");
            double height = 0;
            double width = 0;
            foreach (var a in mc.GetInstances())
            {
                string path;
                Trace.WriteLine(path = a.Properties["PNPDeviceID"].Value.ToString());
                var bytes = (byte[])Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Enum\" + path + @"\Device Parameters").GetValue("EDID");
                height = bytes[22];
                width = bytes[21];
                Trace.WriteLine("" + bytes[21].ToString());
                Trace.WriteLine("" + bytes[22].ToString());
            }
            height = height * 10;
            width = width * 10;
            double x1 = SystemParameters.PrimaryScreenWidth;//得到屏幕整体宽度
            double y1 = SystemParameters.PrimaryScreenHeight;//得到屏幕整体高度

要引用系统自带的Management.dll程序集,然后访问EDID的数据,EDID的数组中的22位和23位是屏幕的物理宽和高。

C#计算屏幕的物理宽和高

上一篇:C#判断输入的是否是汉字


下一篇:windows 2012 r2如何开启远程桌面