barcode scanner 開發問題一問 |
尚未結案
|
isthatu
初階會員 發表:80 回覆:47 積分:25 註冊:2002-06-26 發送簡訊給我 |
各位大大
是這樣的 因為USB barcode scanner被當作鍵盤IO方式 一般都寫在程式EDIT或主FORM onKeyDown等等按鍵鍵盤事件觸發 但我眾多的USER 業務煩雜 理解力大多良莠不齊 ..機機歪歪者居多 刷BARCODE時未必FOCUS在我的主程式上 也許她正在做其他業務 如OFFICE文書處理或其他系統 甚至上網 有時還是甚至切換到中文輸入法 工作就沒辦法像單純7-11收營台那樣簡單 .....以導致刷BARCODE常常無法得到預期目的 那跟他們要求該怎麼操作 她們就會覺得是程式寫的不好 很難用 這麼忙怎麼有能注意到...!@##$%%$$~@!@@! 當然我也很能理解 她們不懂的人 會認為直接刷了就要像7-11那樣有反應!!!! 因此,只好盡量就幫她們這些懶人 想最好能讓她們少動腦少動手 我也落得耳根清靜的方法~~~!!! 所以,我在想可否用常駐的方式 隨時在背地裡紀錄鍵盤按鍵(同 USB barcode scanner被當作鍵盤 )來的讀資訊 (有點像網咖偷紀錄別人鍵盤在幹啥) EX: 我的BARCODE開頭幾碼有特殊符號 讀到後就可以觸發後續程式 將開頭有特定代碼的後的固定字串送去處理 不知道有沒有人有這樣開發的問題 或是有一樣機車的USER呢? 能否聊聊還有什麼好方法 這樣常駐方式可否行之 有沒有相關的資料可以參考???
------
BCDEFHIJKLMNOPQRSTUVWXZ 編輯記錄
isthatu 重新編輯於 2013-03-27 09:04:18, 註解 無‧
|
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
|
ANDY8C
資深會員 發表:114 回覆:582 積分:299 註冊:2006-10-29 發送簡訊給我 |
客戶大牌是一定定律,沒事出難題,有事推責任,不爽就換廠商.....這才是正常的客戶.
反正廠商永遠都是 "僕人",所以......要忍耐,有錢賺就賣命,沒錢賺就 bye bye 既然此工作站非Scanner 獨用,建議此工作站的 Scanner 改用 RS232 介面方式 用程式監控 rs232 PORT,當 rs232 有訊號進來 就把form 拉到最前....至於 focus 那個欄位,這就有藝術了,.....我還在想如何解決..... 如果客戶提 超商門市多容易掃....... " 您就說,那是我朋友做的案子, 要花 2 萬元才可以解決(方法如上),當然我不會收那麼貴,......1.8萬就好"..... 掰一些 543 就矇過去 === = = = == = 另一招,解讀 USB 進來的 IO ,是 SCANNER 進來的資料,就把form 拉到最前..... 這一招有點難,我還在想如何做..... =========== 第三招 人的問題處理不完.....叫老板換人操作看看(如果你與老板夠熟的話) 謝謝您
------
--------------------------------------- 偶爾才來 KTOP ,交流條碼問題,在 FB [條碼標籤達人] 社團留言,感恩.
編輯記錄
ANDY8C 重新編輯於 2013-03-27 17:17:34, 註解 無‧
|
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
Andy大果然是barcode的專家。想到用rs232,剛看到讓我眼為之一亮,好主意呀!
不過,我又想了一下,如果該232 barcode是配合keyboard driver,那是不是有可能變成232抓不到,而跑到keyboard上了? 當然,若不是配keyboard的driver就不會,那就是rawdata,自己收信號,自己解信號… 於是,我覺得應該有一個解法,就是windows 的hook api,對keyboard的信息做全系統性的hook,也是苦主提到的。 寫一個hook dll,解自己的通訊封包(要帶有特殊封包頭),才好做進一步的focus… 比如信息若單純是 ABCDE123456,實際上要代入edit的是123456,ABCDE是判別用的。這樣的話…太簡單,很可能 誤觸你的程式。因為該user只是在寫email,裡面剛好提到ABCDE123456。 因此,封包的自訂也很重要。 以上僅供參考。 : ) ===================引 用 ANDY8C 文 章=================== 客戶大牌是一定定律,沒事出難題,有事推責任,不爽就換廠商.....這才是正常的客戶. 反正廠商永遠都是 "僕人",所以......要忍耐,有錢賺就賣命,沒錢賺就 bye bye 既然此工作站非Scanner 獨用,建議此工作站的 Scanner 改用 RS232 介面方式 用程式監控 rs232 PORT,當 rs232 有訊號進來 就把form 拉到最前....至於 focus 那個欄位,這就有藝術了,.....我還在想如何解決.....
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
ANDY8C
資深會員 發表:114 回覆:582 積分:299 註冊:2006-10-29 發送簡訊給我 |
|
max5020
資深會員 發表:30 回覆:277 積分:321 註冊:2003-06-04 發送簡訊給我 |
|
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
ANDY大大的 RS232 確實是個好解....but....先決條件...AP端就必需要有個RS232通訊設定界面,我以前還遇過一個天才的資深 IT 連COM1、COM2 都搞不清楚,更何況要USER了解這些東東,在換機或移機時...PORT要插對孔...設定要設對.....這些事實屬不易啊...(現在好些了...大部份的電腦只剩下一個COM PORT了)
afcast大大的 HOOK 也很讚...確實技術門檻也高了些...而且還要考慮到有USER 用鍵盤輸入了 ABC 後,又用條碼刷入了 ABCDE123456 ,就必需把先前的ABC先從buffer清掉,然後再開始接受新的輸入.....這樣情境的判斷機制勢必也要考慮進去....要手工打造這些程序.....也要花點時間.... 高手們提供了高手的方法....我們這些不聰明的人.....來提供點蠻幹硬拗的手法.... 寫兩個Function 1. OnEnter 時,把現有文字輸入盒的文字先保存起來 2. OnExit 時,判斷輸入的文字是否有關鍵字 ABCDE,如果不是...啥事都不用幹...如果是....就把這次輸入的文字記起來....然後將剛剛記住的文字還原...然後Focus移至Barcode輸入處,並將剛剛Barcode刷入的文字貼上Focus的文字盒中。 3. 把所有文字能輸入的元件, OnEnter 跟 OnExit 都先呼叫這兩個Function。 其實這個問題,跟當初 DOS轉換成Windows時,按Enter鍵要能自動Focus到下一個文字輸入盒一樣,User也是不能接受要按 Tab 鍵才能將Focus移至下一個文字輸入盒...都說以前按Enter就會自動跳到下一個輸入盒......不得已....當然也是在每個OnKeydown時,檢查是不是 CHR(13)...然後幫它Focus移往下一個文字盒...... 重點是 USER 能不能接受時代的變遷......如果不行....就要多動很多手腳來讓USER感覺還活在以前的年代.... 王道還是...要USER認清時代已經變遷....一成不變只會讓自己被淘汰..... 而且還要記住....講這些話時....是要語重心長的口氣....而不能是語帶威脅的口氣.....如此方能打動人心..... 不過....通常還是鼻子摸一摸.....加了很多code進程式...... IT嘛.....不就是挨踢...... ===================引 用 aftcast 文 章=================== Andy大果然是barcode的專家。想到用rs232,剛看到讓我眼為之一亮,好主意呀! 不過,我又想了一下,如果該232 barcode是配合keyboard driver,那是不是有可能變成232抓不到,而跑到keyboard上了? 當然,若不是配keyboard的driver就不會,那就是rawdata,自己收信號,自己解信號… 於是,我覺得應該有一個解法,就是windows 的hook api,對keyboard的信息做全系統性的hook,也是苦主提到的。 寫一個hook dll,解自己的通訊封包(要帶有特殊封包頭),才好做進一步的focus… 比如信息若單純是 ABCDE123456,實際上要代入edit的是123456,ABCDE是判別用的。這樣的話…太簡單,很可能 誤觸你的程式。因為該user只是在寫email,裡面剛好提到ABCDE123456。 因此,封包的自訂也很重要。 以上僅供參考。 : ) ===================引 用 ANDY8C 文 章=================== 客戶大牌是一定定律,沒事出難題,有事推責任,不爽就換廠商.....這才是正常的客戶. 反正廠商永遠都是 "僕人",所以......要忍耐,有錢賺就賣命,沒錢賺就 bye bye 既然此工作站非Scanner 獨用,建議此工作站的 Scanner 改用 RS232 介面方式 用程式監控 rs232 PORT,當 rs232 有訊號進來 就把form 拉到最前....至於 focus 那個欄位,這就有藝術了,.....我還在想如何解決..... |
ANDY8C
資深會員 發表:114 回覆:582 積分:299 註冊:2006-10-29 發送簡訊給我 |
carstyc 這招好呀 !! 果然是高手...
所以方法大家都有自己的解法, 這也是做軟體的好處,無窮的想像世界 能解決 USER問題才是重點 另外 有關 rs232 介面.... 現在的電腦/NB都沒附了....所以市面有很多 USB 轉 RS232的 CABLE 及 USB 轉 LPT CABLE ,以上兩者都算是 USB 介面 但是 USB 轉 RS232 ,它安裝 DRIVER後, 會有實體的 COM PORT 存在(COM 3,COM4...等), 所以DELPHI 原來的 RS232 的元件都可以相容(視為真的 RS232 PORT) 如果考量 USB 轉 RS232 的驅動及穩定性,價格大眾化..... 用 FTDI 晶片的產品比較好(貴 1,2百元),其低價的產品可能問題較多 至於 USB 轉 LPT , 請小心 ,他還是 USB ,因為電腦不會有實體的 LPT1 代號出現 所以 DELPHI 只能用 USB 方式與它通訊....不能再用 LPT 的舊模式思考, 如果堅持用真實/有address LPT PORT ,只能插 LPT 擴充卡,插卡後 $3F8 , $2F8 都可以 但此類的卡,若設定 #9000 以上的 ADDRESS 不是每一台PC 都可以通. 以上 謝謝您 ===================引 用 carstyc 文 章=================== 高手們提供了高手的方法....我們這些不聰明的人.....來提供點蠻幹硬拗的手法.... 寫兩個Function 1. OnEnter 時,把現有文字輸入盒的文字先保存起來 2. OnExit 時,判斷輸入的文字是否有關鍵字 ABCDE,如果不是...啥事都不用幹...如果是....就把這次輸入的文字記起來....然後將剛剛記住的文字還原...然後Focus移至Barcode輸入處,並將剛剛Barcode刷入的文字貼上Focus的文字盒中。 3. 把所有文字能輸入的元件, OnEnter 跟 OnExit 都先呼叫這兩個Function。
------
--------------------------------------- 偶爾才來 KTOP ,交流條碼問題,在 FB [條碼標籤達人] 社團留言,感恩.
編輯記錄
ANDY8C 重新編輯於 2013-04-11 12:45:18, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |