2011-07-16 161 views
0

我有一個非常簡單的USB設備。沒有驅動程序提供,並且指示要打開編輯器並管理該設備(讓我們不要通過討論設備來混淆發佈)來查看結果。如何從簡單的USB設備讀取值?

果然,如果我在Windows中打開記事本並操作設備,文本字符串將顯示在記事本中。

好吧,它看起來像是寫給stdin。現在我想寫一個Delphi程序來採取這個輸入並採取行動...

我應該怎麼做最好的呢?

表單似乎沒有收到KeyDown/KeyUp/KeyPress事件。這太遺憾了,因爲它可以讓設備「打斷」我。但是,也許我必須進行民意調查?每隔一段時間(多久?)我可以嘗試從stdin中讀取 - 但如果沒有可讀的內容呢?

我希望我解釋清楚。有什麼建議?


更新:哎呀,我的壞 - 我沒有收到的KeyDown/KEYUP /按鍵事件,因爲我忘了窗體的的KeyPreview設置爲True。但我將這個問題授予格雷格,因爲他試圖幫助,因爲HID看起來很有趣。謝謝,格雷格。

+0

「如果我打開記事本並操作設備,則會在記事本中出現文本字符串」。你的意思是你使用文件打開對話框在設備上打開一個文件,記事本中顯示的文件內容是你想要的字符串?請更精確。如果是這種情況,那麼只需在設備名稱上打開一個TFileStream並讀取它。 – mj2008

+1

我認爲你可以做的最好的就是閱讀USB設備上的文檔。 – kludg

回答

1

這聽起來像您的設備正在使用HID (Human Interface Device) USB class,並且像鍵盤一樣工作。因此,您可以像平時一樣從鍵盤上讀取數據,以適當的方式操作設備(掃描條形碼,無論如何),並且鍵盤輸入會像輸入的一樣進行。

+0

+1謝謝,這聽起來不錯。我將去搜索一個Delphi HID組件或源代碼示例。 – Mawg

+0

雖然乍一看HID,但我想知道這個應用程序是不是過度使用 - 只是從鍵盤上讀取數據?無論如何,我會閱讀更多的HID,因爲它看起來很有趣。謝謝。 – Mawg

+0

哎呀,我的壞 - 我沒有收到KeyDown/KeyUp/KeyPress事件,因爲我忘記將窗體的KeyPreview設置爲True。但我爲你授予這個問題,因爲你試圖幫助,因爲HID看起來很有趣。謝謝。 – Mawg