如何将重复的监视器检测为单独的屏幕使用此问题的答案,我可以获得“屏幕”计数。但是,这似乎不适用于设置为“重复”的监视器(报告一个监视器而不是2个)。我的应用程序提示用户从VGA切换到HDMI(这是在具有两个输出端口的设备上),然后键入“你能看到这个吗?”在屏幕提示上验证两个视频端口是否正常工作。我试图在显示提示之前检测到切换已经发生,但由于上述问题,代码没有看到监视器计数递减,然后递增(这是我检测切换的方式)。如果一切都设置为重复,我如何检测视频设备切换?如果监视器设置为“扩展”,则现有代码有效。还有一个始终存在的内部视频设备(不尝试测试它)。请参阅此问题并使用中提供的QueryDisplayConfig包装器(并在答案中修复)。更改导入的签名以将DisplayConfigTopologyId拓扑作为最后一个参数。使用QueryDisplayFlags.DatabaseCurrent作为显示标志,否则您将获得状态87(无效参数)调用QueryDisplayFlags后,拓扑将被克隆、扩展等。调用方法...varstatus=CCDWrapper.QueryDisplayConfig(CCDWrapper.QueryDisplayFlags.DatabaseCurrent,refnumPathArrayElements,pathInfoArray,refnumModeInfoArrayElements,modeInfoArray,outcurrentTopologyId);表格返回。如果我将其更改为“仅显示屏幕1”,则表示拓扑内部有1个屏幕。“Showonlyscreen2”对外显示1个屏幕。“克隆”显示2个屏幕。JamesBarrass的回答对我不起作用。终于得到答案:链接代码如下:以上就是《C#学习教程:HowtoDetectDuplicateMonitorsasSeparateScreenSharing》的全部内容,如果对大家有用需要进一步了解C#学习教程,希望大家多多关注—publicstaticintGetScreenCount(){ManagementObjectSearchersearcher=newManagementObjectSearcher("root\CIMV2","SELECT*FROMWin32_PnPEntitywhereservice="monitor"");返回searcher.Get().Count;}本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
