需求:
程式中獲取usb口掃碼槍掃碼內容(不顯示出來)
目前進行到使用鍵盤鉤子,監控鍵盤按鍵
這都可以了,只要是非除錯狀態下就能在無焦點狀況下獲取到
但發現個問題,如果程式外部其他界面上有焦點時 掃碼內容又輸出到焦點位置去了,效果不理想
想不讓外部焦點輸出掃碼內容,該怎么做啊
請指教!
uj5u.com熱心網友回復:
我記得鉤子分為全域鉤子和區域鉤子。只要設定hook主函式的值(0/1)就好了。你試試看
uj5u.com熱心網友回復:
謝謝!
不過……試過了 確實解決了外部焦點問題 但是掃碼槍本身就是程式外的執行緒,所以掃碼槍掃碼也獲取不到了…………
指定掃碼槍的鉤子?可行不?
第一次用鉤子,真心不會用
uj5u.com熱心網友回復:
我記得你應該先獲取你需要的視窗的句柄。在Hook的函式里面,應該有讓你設定視窗句柄的地方。
因為N年前的東西了。我不是記得太清楚。
uj5u.com熱心網友回復:
謝謝!
不過……試過了 確實解決了外部焦點問題 但是掃碼槍本身就是程式外的執行緒,所以掃碼槍掃碼也獲取不到了…………
指定掃碼槍的鉤子?可行不?
第一次用鉤子,真心不會用
我記得你應該先獲取你需要的視窗的句柄。在Hook的函式里面,應該有讓你設定視窗句柄的地方。
因為N年前的東西了。我不是記得太清楚。
謝謝!
可能你沒遇到過掃碼槍這種需求……
簡單來講,程式是自己的,掃碼槍是系統的(而且是個沒界面的)
用串口好說(贊美串口!!!!!串口萬歲!!!!!) 直接串口通訊就行 什么亂七八糟的問題都沒有 就是有點不方便 沒串口的得把usb口轉串口
用usb口就有很多問題了,網上搜的多是模擬鍵盤輸入的方式獲取掃碼內容……一是現在遇到的,用區域就獲取不到外面的掃碼槍,用全域就控制不住外面的焦點……再有就是由于是監控鍵盤,會有很多諸如 shift+按鍵 這種特殊輸入以及中文輸入問題
在研究研究 不行就使用串口了
uj5u.com熱心網友回復:
我當時做的就是掃碼槍,用wince平臺開發的。不過可能需求不同吧。我當時是需要捕獲全域鉤子的。
uj5u.com熱心網友回復:
我當時做的就是掃碼槍,用wince平臺開發的。
不過可能需求不同吧。我當時是需要捕獲全域鉤子的。
不太了解wince
也是通過監控鍵盤獲取掃碼槍掃碼嗎?全域鉤子的話,焦點在外部怎么辦
uj5u.com熱心網友回復:
我當時做的就是掃碼槍,用wince平臺開發的。
不過可能需求不同吧。我當時是需要捕獲全域鉤子的。
不太了解wince
也是通過監控鍵盤獲取掃碼槍掃碼嗎?全域鉤子的話,焦點在外部怎么辦
是的,監控鍵盤
我當時就是要監控整個螢屏上的鍵盤操作。所以沒有你這個問題。

uj5u.com熱心網友回復:
我用的串口掃碼槍
uj5u.com熱心網友回復:
我用的串口掃碼槍
串口萬歲
uj5u.com熱心網友回復:
樓主最后解決沒 現在碰到跟你一樣的情況 搞了好多天了 還是控制不好外部焦點寫入的情況uj5u.com熱心網友回復:
樓主最后解決沒 現在碰到跟你一樣的情況 搞了好多天了 還是控制不好外部焦點寫入的情況
1.用串口
2.在自己的程式目標位置寫上“請點擊此處后掃碼”之類的提示性文本
能想到的就這兩種
要么就自己花時間研究吧……
uj5u.com熱心網友回復:
我之前也有這情況,后來我加了個時間和長度判斷就好了uj5u.com熱心網友回復:
樓主最后解決沒 現在碰到跟你一樣的情況 搞了好多天了 還是控制不好外部焦點寫入的情況
1.用串口
2.在自己的程式目標位置寫上“請點擊此處后掃碼”之類的提示性文本
能想到的就這兩種
要么就自己花時間研究吧……
最后研究好久也沒搞出來,還是跟你說的情況一致,用了全域鉤子,當別的程式有輸入焦點掃碼槍掃的碼也會出現在別的程式輸入焦點上,而需求是掃碼時能獲取掃碼輸入,同時不影響別個程式輸入,很尷尬
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/146912.html
標籤:C#
