一种可靠的方法来识别显示设备?

一种可靠的方法来识别显示设备?,第1张

概述一种可靠的方法来识别显示设备?

我一直在寻找一个解决scheme来识别显示设备(在我的情况下是telivisions),以保持专门devise使用多显示器的主布局。

假设我有6台电视机连接。 (通常其中3个通过HDMI端口,另外3个通过DVI端口(使用DVI-to-HDMI适配器)),其物理位置是3×2像这样:

TV1 … TV2 … TV3

TV4 … TV5 … TV6

使用循环与对象名称

如何在系统托盘中显示图标?

log4net跨平台XMLconfiguration

在windows 8中检测重启 – 未调用SessionEnding

当Readonly = false时,性能计数器显示不同的值

目标

我想在每个特定的电视上显示一些全屏内容。 Content1必须去TV1,Content2必须去TV2等…换句话说: 我需要推动我的内容到displayDevice(电视) – 而不是任何位置或屏幕,因为他们可以改变,由于windows的行为。 (见下文)

正如你可能知道的那样,windows并没有按照你连接的顺序来枚举显示设备(或者根本不是基于任何规则?)。 它使用完全不同的方式来枚举显示,例如:

。 disPLAY3 … 。 disPLAY6 … 。 disPLAY1

。 disPLAY4 … 。 disPLAY2 … 。 disPLAY5

我做了什么来解决这个问题 ,我完成连接所有的电视机,以配合他们的真实位置手动订购显示设置的电视。

问题

但是这里有一个问题:有些电视机型只是假装他们被closures(或设置为待机模式)时被拔掉,导致windows将显示设备从系统中删除 ,并重新枚举显示设备重新。

由于这种行为(一些电视模型和windows本身),我不能指望Screen.displayname属性,甚至Screen.Location,因为它们是variables 。 在重新枚举之后,它们都发生了变化。

我已经尝试过的解决scheme

我试图获得所有显示设备的序列号,认为我可以find一种方法将这些数字与Screen.displayname关联起来。 那么,我实际上通过使用SetupAPI的EnumdisplayDevicespipe理得到那里,但是我意识到大多数电视没有一个有效的SerialNumber后,这一切都变成垃圾。 即使三星电视没有Seri​​alNumber(但三星显示器肯定是这样 – 所以我想这是关于“显示器”和“电视”之间的区别)

毕竟..

我仍然在寻找解决这个问题的方法。 我想到的另一个想法是,也许我应该停止尝试将内容推送到显示设备(因为它们是无法识别的)也许我应该尝试将内容推送到显卡的端口,这意味着我必须确定哪些端口的显示卡与哪个显示设备(屏幕)相关,但是我都在说话而没有任何关于它的知识 – 甚至不知道这样的事情是否可能。

我正在寻找你的build议,现在感谢。

如何监视.Net应用程序的跟踪输出?

MonoDevelop for linux在linux上的应用程序

.Net核心忽略环境variablesDOTNET_SKIP_FirsT_TIME_EXPERIENCE

C# – closuressubprocess的inputstream

在windows中枚举特定types的文件

当您使用DVI时,可能会有硬件解决方案来解决您的问题:EDID管理器。 即使关闭后面的显示器,这些设备也会模拟有效的EDID。

总结

以上是内存溢出为你收集整理的一种可靠的方法来识别显示设备?全部内容,希望文章能够帮你解决一种可靠的方法来识别显示设备?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1294296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存