線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:7960
推到 Plurk!
推到 Facebook!

barcode scanner 開發問題一問

尚未結案
isthatu
初階會員


發表:80
回覆:47
積分:25
註冊:2002-06-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2013-03-27 09:01:12 IP:59.126.xxx.xxx 訂閱
各位大大

是這樣的 因為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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2013-03-27 10:53:27 IP:114.35.xxx.xxx 訂閱
用程式處理這種問題是處理不完的,請向主管反應,從上到下要求下去才能解決
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
ANDY8C
資深會員


發表:114
回覆:582
積分:299
註冊:2006-10-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2013-03-27 17:14:05 IP:210.66.xxx.xxx 未訂閱
   客戶大牌是一定定律,沒事出難題,有事推責任,不爽就換廠商.....這才是正常的客戶.

反正廠商永遠都是 "僕人",所以......要忍耐,有錢賺就賣命,沒錢賺就 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2013-03-27 19:59:57 IP:114.32.xxx.xxx 訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2013-03-27 22:47:08 IP:210.66.xxx.xxx 未訂閱
 大俠的想法果然不一樣.....但技術門檻可能高一些

------
---------------------------------------
偶爾才來 KTOP ,交流條碼問題,在 FB [條碼標籤達人] 社團留言,感恩.
max5020
資深會員


發表:26
回覆:277
積分:320
註冊:2003-06-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2013-04-02 16:05:43 IP:59.125.xxx.xxx 訂閱
根據寫POS系統的經驗,即然要精準控制輸入源,就不要怕麻煩,就用RS-232吧,每個BARCODE都加上控制碼,就可以達到更靈活的控制內容
carstyc
資深會員


發表:16
回覆:254
積分:329
註冊:2003-07-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2013-04-07 23:06:37 IP:219.84.xxx.xxx 訂閱
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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2013-04-11 12:44:35 IP:210.66.xxx.xxx 未訂閱
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, 註解 無‧
系統時間:2024-04-18 20:00:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!