[บทความ c#] ป้องกัน “คีย์บอร์ดลั่น” ขณะใช้ Barcode scanner ด้วย Raw Input

เคยไหมครับ จะทำหน้าต่าง UI ขึ้นมาเพื่อป้อนตัวอักษรเข้าไปให้ PC ของเรา แต่อุปกรณ์ INPUT ที่ต่ออยู่กับเครื่อง PC นั้นมีมากกว่า1ชนิด จนอาจเกิดเหตุการณ์ “มือลั่น” ขึ้นมา ซึ่งประสบการณ์ที่ผมเจอมาบ่อยครั้งคือ Barcode Scanner ที่ต่อเป็น Port USB เข้ากับ PC ของเรา

                Barcode Scanner เป็น Hardware ที่แพร่หลายมากๆในระบบอุตสาหกรรมการผลิต เนื่องมาจากความสะดวกในการอ่านเลข LOT ของชิ้นงาน ด้วยความที่เลขLOT มักจะเป็นเลขหรือตัวอักษรที่ยาว และ ไม่ใช่ตัวอักษรที่เรียงเป็นคำ การจะใช้คีย์บอร์ดป้อนเข้าไป เรียกได้ว่าไม่ทันใจแน่ๆ

                แต่ Barcode scanner และ คีย์บอร์ด ที่ต่อร่วมกันกับ PC นั้น นำมาซึ่งปัญหาที่ไม่คาดคิด คือในจังหวะที่เข้าหน้า UI ป้อนเลข LOT ของชิ้นงานนั้น นอกจากเราจะใช้ Barcode scanner ป้อนเลขเข้าไปแล้ว คีย์บอร์ดของเรายังสามารถกดได้ด้วย!

                บางคนก็ว่ามันก็สะดวกดีนะพี่ เผื่อBarcode scanner มีปัญหาจะได้ใช้ คีย์บอร์ดพิมพ์เข้าไปได้ แต่นั้นอาจไม่ใช่สิ่งที่บางคนต้องการ และจะดีกว่ามั้ย ถ้าเราสามารถจะใช้ คีย์บอร์ด หรือ จะไม่ใช้คีย์บอร์ด ในช่วงเวลาบางเวลาได้ดั่งใจต้องการ ที่ผมกำลังจะสื่อถึงก็คือ การมีoptionสามารถ block คีย์บอร์ด ไม่ให้กดได้ หรือ อยากจะอนุมัติให้กดได้ในวันที่ Barcode scanner เสีย ได้ทันที

                สิ่งๆนั้นสามารถทำได้โดยการควบคุม Hardware ID นั่นเองครับ!!

                Hardware ID ของแต่ละอุปกรณ์ สามารถเข้าไปดูได้ผ่านทาง Device manager >> คลิกขวาที่อุปกรณ์ที่ต้องการ >>Properties จากนั้นไปที่ Tab Details มองหาช่อง Property แล้วกดเลือก Hardware Ids ได้เลยครับ

                เมื่อพบกับ Hardware ID แล้ว ก็จะคัดลอก Hardware ID ตัวนี้ไปใช้งานได้เลยครับ แต่เอ… เราจะรู้ได้ยังไงล่ะว่า Input ที่เข้ามาสู่คอมพิวเตอร์ ณ ตอนนั้น เป็นอุปกรณ์อะไร มาดูกันต่อได้เลยครับ

                เครื่องมือที่ใช้ดูว่า มี Input อะไรป้อนเข้ามา มีชื่อว่า RawInput ครับ สามารถดาวน์โหลดตัว Library หรือ DEMO ได้ตามลิ้งนี้เลยครับ

หน้าต่าง UI ตัวDemo ของ Raw input ครับ

                เครื่องมือตัวนี้นอกจากระบุได้แล้วว่าอุปกรณ์อะไรป้อนเข้ามาสู่คอมพิวเตอร์เรา ยังสามารถแสดงข้อมูลที่ป้อนเข้ามาด้วย format ที่หลากหลาย ไม่ว่าจะเป็น Ascii หรือ Char หรือแม้กระทั่งการระบุว่าอุปกรณ์นั้นมี Typeอะไร หรือDevice description ในระบบว่าอะไร เรียกได้ว่าเอาไปประยุกต์ใช้งานได้หลากหลายเลยล่ะครับ

                สำหรับ DEMO การนำ Libraryนี้ไปใช้งาน เพื่อนๆสามารถติดตามได้เร็วๆนี้ครับ และฝากติดตามบทความอื่นๆในเว็บไซต์ของเราด้วยนะครับ เราจะมาแชร์บทความดีๆ หรือเคล็ดลับที่เป็นประโยชน์ไม่มากก็น้อยกับเพื่อนๆ ฝากติดตามด้วยนะครับ

#Admin

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *