2017-10-09 75 views
-1

场景:关键计算机系统由操作员通过标准USB键盘和鼠标控制。此外,还有一个DVI监视器连接到查看操作员定位的GUI。计算机系统运行基于Windows 7 Professional或Windows Embedded Standard 7(“系统软件”)的软PLC系统。检测硬件组件的断开/断开(Win​​dows 7)

问题:是否有软件解决方案,以检测USB HID的器件的损耗(断开/失败),例如键盘或鼠标,和单DVI-显示?这一点很重要,因为不能期望关键系统能够正常工作,而操作员无法操作或看到显示的内容。

自己的考虑:这可能需要低级别的WINAPI调用,这很好。我在想,一个Windows服务可能会不断寻求枚举键盘和显示器的数量 - 甚至可能通过型号或序列号来识别它们。如果此枚举和/或标识达到零或完全失败,则系统软件当然必须快速且适当地进行反应(即,进入故障模式或类似模式)。

就我所见,这是所有关键操作员控制系统的普遍问题。问题是:对于这个存在的软件或硬件是否已经存在?

注:操作员总是人为的。

+2

会[RegisterDeviceNotification](http://www.google.com/search?btnI=1&q=msdn+RegisterDeviceNotification)无效吗? –

+0

@Dúthomhas我不知道:)会吗?我以前从未使用过WINAPI调用(包括Windows服务)。但它似乎是相关的。非常欢迎您以答案扩展。 –

+0

https://github.com/Brandon-T/HDMI我使用'RegisterDeviceNotification'来检测连接到电视或显示器的HDMI电缆何时插入和拔出。对GUUID稍作修改以检测USB和其他设备。 – Brandon

回答

0

唉,至于答案,这不会比“阅读文档”加上一些链接...抱歉。

首先,MSDN文档。

我发现CodeProject.com一个C#类,做这一点;随附的文章相当不错。

我承认上次我做了这样的事情是在几年前,只有CD通知。我已经失去了代码(我的主硬盘和备份硬盘都在几天之内失败,LOL)。

+0

这实质上是一个链接唯一的答案,除了它甚至不提供实际目标的链接。请参阅[答],特别是:*“鼓励与外部资源的链接,但请在链接的周围添加上下文,以便您的同行用户了解它是什么以及为什么在那里。始终引用重要链接中最相关的部分,以防万一目标站点无法访问或永久脱机。“* – IInspectable

+0

这种注册设备通知的方法,是否能够连续地为特定类的设备的枚举/列表进行连接池?通知处理程序似乎只在设备事件发生时才被调用(例如,移除/插入USB设备)。这是否正确理解? –

+0

是的,您正在注册通知事件。 –