Windows 如何在虚拟机中模拟内部显示器

Windows 如何在虚拟机中模拟内部显示器

我正在尝试在虚拟机中运行一个程序,该程序尝试通过 Windows WMI 使用查询获取我的显示信息:

var success = true;

List<Display> displays = new List<Display>();

// Query WmiMonitorBasicDisplayParams to retrieve display parameters
using (var searcher = new ManagementObjectSearcher(@"Root\WMI", "SELECT * FROM 
WmiMonitorBasicDisplayParams"))

using (var results = searcher.Get())

由于某种原因,Windows WMI 无法获取我的虚拟显示器的显示信息,并且程序崩溃并引发此异常:

Unhandled exception. System.Management.ManagementException: Not supported
at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
at System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()

这在每个虚拟机中都会发生,并且显示器始终被归类为非 PnP 设备。

那么我该如何模拟真正的内部显示器?(比如笔记本电脑显示器)以便 Windows WMI 不会使程序崩溃?否则有没有办法拦截和修改 WMI 查询的结果,然后将其返回给程序 c# 代码?

答案1

虚拟机应用程序(VMware、Virtual Box、Hyper-V)为客户机创建虚拟硬件(而不是真实硬件)。

那么我该如何模拟真正的内部显示器?(比如笔记本电脑显示器)以便 Windows WMI 不会使程序崩溃?否则有没有办法拦截和修改 WMI 查询的结果,然后将其返回给程序 c# 代码?

你不能(正如我的第一条评论)。你尝试做的事情在虚拟机中无法实现。

我同时使用 VMware 和 Hyper-V

您需要一台真实的(物理)机器来运行和测试您的程序。

相关内容