回答
我想到两个方法,可能在特殊条件下工作:
试图让显示器硬件的名称。在我的双显示器系统上,我使用了一台SyncMaster 205BW和一台SyncMaster 173T。这些是20“和17”显示器。你明白我的意思吗?然而,一个问题是,我不确定你是否可以通过编程获得这些字符串。 Windows似乎只能获得SyncMaster:screenres.png。您可以使用
GetDeviceCaps(GetDC(GetDesktopWindow), VERTSIZE)
来获得“物理屏幕的高度,以毫米为单位”。并且与HORZSIZE
和“宽度”类似。但是,如果你已经校准了你的显示器,我相信这只会起作用。至少在我的系统中,这些值远远大于实际的高度和宽度...我不知道你的上下文,但是如果你的应用程序确实需要最终用户输出设备的物理大小,为什么不问他他?您可以在安装过程中轻松询问显示器的尺寸(例如,使用优秀的Inno Setup),并将值存储在注册表中。然后编写一个程序
GetPhysicalMonitorSize
,它只是从注册表中读取值是微不足道的。
如果没有特定于.NET的方式,则始终可以使用本机Windows API:GetSystemMetrics
与SM_CYSCREEN
或SM_CXSCREEN
。
GetSystemMetrics只会带回像分辨率这样的东西我想要显示器的尺寸(例如21'显示器) – AngryHacker 2010-06-10 23:56:20
@AngryHacker:哦,这听起来更加困难... – 2010-06-10 23:59:48
那*对于'困难==不可能'的价值来说,要困难得多 – 2010-06-11 00:05:49
Web应用程序或桌面应用程序?所有你可以了解Web应用程序是浏览器的屏幕分辨率,使用javascript:
<script language="javascript">
var width = screen.width;
var height = screen.height;
if(width < 1280 || height < 1024)
{
alert("This web page is best viewed with a screen resolution of 1280 by 1024 or higher. Your current resolution is " + width + " by " + height + ". If possible please change your resolution.");
}
else
{
alert("Your screen resolution is pretty big!")
}
</script>
对于桌面应用程序,你这样做:
MessageBox.Show("Monitor Size:" +
SystemInformation.PrimaryMonitorSize);
这不能保证。 Windows不能知道显示器的大小,除非其驱动程序询问它并将回复报告给窗口。
然而,你可能想尝试
SystemInformation.PrimaryMonitorSize
或GetDeviceCaps(dc, HORZSIZE)
和GetDeviceCaps(dc, VERTSIZE)
然后calulate上斜边的平方。
请注意,也有一个accepted answer相同的问题在这里堆栈溢出。
您可以使用注册表中的EDID来获取物理屏幕大小。显示器的驱动程序将物理屏幕大小报告给Windows。
- 1. 如何获取显示器的正确物理尺寸?
- 2. 有没有办法将图像缩小到特定尺寸?
- 3. 的Android getDisplayMetrics()没有返回准确的显示尺寸
- 4. 关于显示器的物理尺寸,屏幕分辨率,DPI
- 5. 有没有办法改变Android手机的MTU尺寸?
- 6. 有没有办法从iTextSharp读取TrimBox和BleedBox的尺寸?
- 7. 有没有办法使用可变的广告横幅尺寸?
- 8. ColdFusion:有没有办法获得视频的尺寸?
- 9. 在屏幕上显示之前确定UIStackView的固有尺寸
- 10. Android模拟器没有显示全尺寸的手机屏幕
- 11. 有没有办法在MVC3中检索手机屏幕尺寸
- 12. ImageLoader没有给出正确的尺寸
- 13. 自定义响应格栅柱尺寸没有正确确定
- 14. 谷歌地图没有全尺寸显示为容器
- 15. 有没有办法让回收站视图显示固定数量的物品?
- 16. QSplitter没有正确设置尺寸
- 17. 有没有办法来绘制动态尺寸(拉伸)自定义表(网格)
- 18. 如何让iPhone尺寸的网页显示正确的尺寸?
- 19. 有没有办法转储所有的物理内存值?
- 20. 有没有办法确定理想的线程数量?
- 21. JQgrid在IE8中没有正确确定尺寸
- 22. 有固定尺寸
- 23. 有没有指定尺寸的IE7填充解决方法?
- 24. Java有没有办法确定它运行的命令行控制台的大小/尺寸?
- 25. 无法正确确定QLabel的尺寸
- 26. 有没有办法确定连接管理?
- 27. 有没有办法让facebook标签只显示给管理员?
- 28. 有没有办法在特定的时间显示表格
- 29. 有没有办法显示宽度为%,没有内容的div?
- 30. 有没有办法显示/隐藏没有CSS的元素?
标题忘了提及OP希望显示器图像的物理尺寸(以英寸为单位),而不是以平方像素为单位的桌面分辨率。 – 2010-06-11 00:00:51
@Andreas您的建议添加了 – AngryHacker 2010-06-11 00:02:22
我可以很容易地给你像素大小,但是,这就是全部...... – 2010-06-11 00:14:44