如何从没有屏幕的机器上获取屏幕分辨率?

Posted

技术标签:

【中文标题】如何从没有屏幕的机器上获取屏幕分辨率?【英文标题】:How to get screen resolution from machine that has no screen? 【发布时间】:2021-06-12 22:09:42 【问题描述】:

我正在尝试获取运行 selenium 测试的无头机器的屏幕分辨率。

已经尝试使用System.Windows.Forms.Screen.PrimaryScreen 以及Forms 中的其他选项。 我尝试过使用 powershell 和 c#。通常他们会告诉我 RDP 进入机器后的屏幕大小(这只是远程会话的大小)或请求失败(如果我尝试从 PSSession 获取大小)。

提前致谢!

【问题讨论】:

尝试 >>> (Get-CimInstance -ClassName CIM_VideoController).VideoModeDescription 咧嘴] 【参考方案1】:

你在正确的轨道上,屏幕类为你提供你想要的信息:

$Screen = [system.windows.forms.screen]::AllScreens
"$($Screen.Bounds.Width) $($Screen.Bounds.Height)"

【讨论】:

屏幕类的问题是您需要一个屏幕。尝试使用没有屏幕的屏幕类方法通常会出错。【参考方案2】:

我的问题的答案原来是硬件问题而不是软件问题。 我与我的 IT 部门交谈,他们告诉我,他们可以从 Nutanix 控制台更改 VM 的分辨率。我不知道这是问题所在。

如果出现这种情况,请务必与您的 IT 或虚拟机管理员联系。这就是答案!

【讨论】:

以上是关于如何从没有屏幕的机器上获取屏幕分辨率?的主要内容,如果未能解决你的问题,请参考以下文章

Android中如何获取屏幕的分辨率?

Android中如何获取屏幕的分辨率?

WinForm C# 获取屏幕真实分辨率

WinForm C# 获取屏幕真实分辨率

WinForm C# 获取屏幕真实分辨率

android获取屏幕的分辨率方法有几种