2017-10-09 74 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

是的,您正在註冊通知事件。 –