A common problem people encounter when trying to use barcode scanners, and sometimes MSR devices too, is that most barcode scanners come preconfigured to report themselves as a ‘keyboard’ to Windows. This is convenient for most situations, as the scanner will then work with any application that supports keyboard input, including web pages, text editors, email programs and word processors as well as business applications such as POS systems. If you don’t need to know data came from the scanner, or which scanner etc. this is generally a good way to go as it requires no development on your part and allows your users to use the scanner in a variety of situations.
Sometimes however, you need more control. Perhaps you need to know if the data was scanned or keyed for reporting purposes. Some retailers use reports that show a high incidence of keyed barcodes to indicate that hardware is faulty, staff need re-training or that product is badly labelled. It might be you want to restrict use of the scanner to business applications that require barcode input, and not allow barcodes to be scanned into emails etc, or it might be you need to log whether data came from the scanner for auditing reasons.
In any case, if you need any of these features your best solution is to use the scanner via Pos .Net, but Pos .Net won’t work with a scanner that is configured as a ‘keyboard’ device. In fact, some service objects will throw exceptions when you try to use them with a scanner that is configured as a ‘keyboard’ or ‘USB HID’ device. In these situations you must reconfigure the scanner so it doesn’t report itself to Windows this way. How you do this depends on the specific make and model of scanner, but it usually involves scanning a specific sequence of barcodes (which should be listed in the scanners user manual) to reprogram it.