【发布时间】:2018-03-21 01:04:55
【问题描述】:
场景:关键的计算机系统通过标准 USB 键盘和鼠标由操作员控制。此外,还连接了一个 DVI 监视器以查看面向操作员的 GUI。计算机系统运行基于 Windows 7 Professional 或 Windows Embedded Standard 7(“系统软件”)的软 PLC 系统。
问题:是否有软件解决方案来检测 USB HID 设备(如键盘或鼠标)和单个 DVI 显示器的丢失(断开/故障)?这一点很重要,因为如果操作员无法对其进行操作或查看显示的内容,就无法再期望关键系统正常运行。
自己的考虑:这可能需要低级别的 WINAPI 调用,这很好。我认为 Windows 服务可能会不断寻求枚举键盘和显示器的数量 - 甚至可能通过型号或序列号来识别它们。如果此枚举和/或识别达到零或完全失败,系统软件当然必须快速且适当地做出反应(即进入失败模式或类似模式)。
据我所知,这是所有关键操作员控制系统的普遍问题。那么问题是:是否已经存在用于此的软件或硬件?
注意:操作员始终是人。
【问题讨论】:
-
RegisterDeviceNotification 不起作用吗?
-
@Dúthomhas 我不知道 :) 会吗?我以前从未使用过 WINAPI 调用(包括 Windows 服务)。但这似乎是相关的。非常欢迎您扩展答案。
-
github.com/Brandon-T/HDMI 我使用
RegisterDeviceNotification来检测连接到电视或显示器的 HDMI 电缆何时插入和拔出。对 GUID 稍作修改以检测 USB 和其他设备。 -
我认为你希望在没有 Win32 专家的程序员的情况下解决这个问题是不现实的。
-
@DavidHeffernan 嗯,这可能是真的,虽然我可以自己施展魔法,只要有足够的时间和资源 :)