我有一個當前從串口讀取的ActiveX DLL。現在我想讓它接受來自USB設備的輸入。VB6 - 從ActiveX DLL中的鍵盤讀取
USB設備作爲標準的人機界面設備。也就是說,如果我打開記事本,那麼設備的輸出將顯示在記事本中,就像它在鍵盤上輸入一樣。通常情況下,我會捕獲Key Up/Down事件,但我認爲我需要一個表單,而我的DLL沒有表單。
如何捕獲該輸入?
[更新]我發現這個http://us.generation-nt.com/answer/anyone-know-how-read-keyboard-input-within-an-activex-dll-help-7934442.html#聲稱這樣做,但不會因爲就是工作代碼使用AddressOf
運營商,這隻能在.BAS文件中使用,所以不會在DLL .CLS
我甚至不確定我是否在尋找系統範圍的鉤子或應用程序特定的。
嗯,http://www.xtremevbtalk.com/showthread.php?t=77216說:「你不能在VB中實現一個全局的WH_KEYBOARD掛鉤 - 它需要一個標準的(非ActiveX dll),因爲它必須被加載到所有正在運行的應用程序的地址空間中。
[上日期]所以,也許我可以在形式,使它的1x1像素和無形的,有一個功能GetTheData
其顯示形式模態,並收集並返回數據 - 無論是獲取鍵盤輸入的形式,水平或轉換成(n不可見)控件,然後關閉返回輸入的表單。
會這樣嗎?如果任何人發佈了一個工作示例,我將獎勵賞金(我寧願表單在任務欄上不可見並且沒有關閉按鈕;用戶不應該意識到它,或者能夠關閉它,它應該關閉它自己當它從USB連接的HDI接收到足夠的輸入時)。
可以在一個ActiveX DLL有.BAS模塊太多,不僅.CLS類模塊。你也可以有.frm表單模塊。 – wqw
@wqw,我是VB新手,能否請您提供更多幫助(並查看我更新的問題)?謝謝 – Mawg
我一直對那些說VB6是新手的人感到驚訝。我的意思是,自從2001年左右起它就沒有被微軟出售過! Mawg - 你從哪裏得到你的副本?我不介意爲了舊時代而買一個! –