使用this问题中的答案我可以获得“屏幕”计数。但是,这似乎不适用于设置为“重复”的监视器(报告一个监视器而不是2个监视器)。我的应用程序提示用户从VGA切换到HDMI(这是在具有两个输出端口的设备上),然后输入“你能看到吗?”在屏幕上提示以验证两个视频端口是否正常工作。
我试图在显示提示之前检测到开关已经发生,但是由于上面提到的问题,代码没有看到监视器计数减少,然后递增(这就是我检测开关的方式)。
如果所有内容都设置为重复,如何检测视频设备开关?如果监视器设置为“extend”,则现有代码有效。有一个内部视频设备也始终存在(不试图测试这个)。
答案 0 :(得分:2)
请参阅This question并使用QueryDisplayConfig中提供的(并在答案中修复)包装器。
更改导入的签名,使out DisplayConfigTopologyId topology
作为最后一个参数。
使用QueryDisplayFlags.DatabaseCurrent
作为显示标志,否则您将获得状态87(无效参数)
调用QueryDisplayFlags后,拓扑将为Clone
,Extend
等。
调用方法......
var status = CCDWrapper.QueryDisplayConfig(
CCDWrapper.QueryDisplayFlags.DatabaseCurrent,
ref numPathArrayElements, pathInfoArray, ref numModeInfoArrayElements,
modeInfoArray, out currentTopologyId);
在我的测试中numPathArrayElements
总是以当前使用中的监视器数量返回。如果我将其更改为"仅显示屏幕1",它表示1个屏幕,拓扑内部。 "仅显示屏幕2"回来时有1个外部屏幕。 "克隆"显示2个屏幕。
答案 1 :(得分:1)
James Barrass的回答对我不起作用。我最终得到了答案:link
以下是代码:
.bg {
display: table;
width: 100%;
height: 50%;
background-image: image-url('pic.jpg');
background-attachment: scroll;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
}
.bg-text{
color: #fff;
text-align: center;
text-shadow: 1px 1px 12px rgba(0,0,0,0.5);
margin-top: 150px;
}
.bg-text h1{
font-size: 50px;
font-weight: 700;
}