가상 머신에서 프로그램을 실행하려고 합니다. 이 프로그램은 쿼리를 사용하여 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()
이는 모든 가상 머신에서 발생하며 디스플레이는 항상 NON PnP 장치로 분류됩니다.
그렇다면 실제 내부 디스플레이를 어떻게 에뮬레이션합니까? (노트북 디스플레이와 같은) Windows WMI로 인해 프로그램이 중단되지 않도록 하시겠습니까? 그렇지 않으면 WMI 쿼리 결과를 가로채서 수정한 다음 이를 프로그램 C# 코드로 반환하는 방법이 있습니까?
답변1
가상 머신 앱(VMware, Virtual Box, Hyper-V)은 게스트 머신이 사용할 가상 하드웨어(실제 하드웨어가 아님)를 생성합니다.
그렇다면 실제 내부 디스플레이를 어떻게 에뮬레이션합니까? (노트북 디스플레이와 같은) Windows WMI로 인해 프로그램이 중단되지 않도록 하시겠습니까? 그렇지 않으면 WMI 쿼리 결과를 가로채서 수정한 다음 이를 프로그램 C# 코드로 반환하는 방법이 있습니까?
(내 첫 번째 의견에 따르면) 당신은 할 수 없습니다. 수행하려는 작업이 가상 머신에서 작동하지 않습니다.
VMware와 Hyper-V를 모두 사용합니다.
프로그램을 실행하고 테스트하려면 실제(물리적) 기계가 필요합니다.