Laden...

Tastatureingabe durch Barcodescanner abfangen

Erstellt von basstscho vor 9 Jahren Letzter Beitrag vor 9 Jahren 6.063 Views
B
basstscho Themenstarter:in
5 Beiträge seit 2011
vor 9 Jahren
Tastatureingabe durch Barcodescanner abfangen

Hallo zusammen,

ich habe folgende Problemstellung:
Windows 7 PC mit angeschlossenem Barcodescanner (als Eingabegerät). Eine C#-Anwendung läuft im Hintergrund und soll mittels vom Barcodescanner eingescannten Barcodes gesteuert werden. Die im Vordergrund laufende Anwendung sollte von den Barcodescannereingaben allerdings nichts mitbekommen. Besteht die Möglichkeit, dass ich alle Tastatureingaben abfange (Hooks) und sobald diese zum Steuermuster passen und innerhalb einer bestimmten Geschwindigkeit eingegeben werden für die "weitere" Tastatureingabe verwerfe (also zu dem im Vordergrund laufenden Programm nicht als Eingabe durchkommen)? Wsl. stehen die Chancen schlecht, aber ggf. hat ja jemand eine gute Idee.

Danke und viele Grüße,
Johannes

H
523 Beiträge seit 2008
vor 9 Jahren

Hallo basstscho,

was für einen Barcodescanner hast Du im Einsatz? Es gibt Scanner für die es extra Komponenten gibt, mit denen man die Eingaben sehr bequem abfragen kann. Evtl. mal beim Hersteller nachfragen.

Falls Dein Scanner diese Möglichkeit nicht bietet denke ich, dass Du um Hooks nicht herum kommst.
Dieser Thread hier gibt Dir evtl. noch ein paar Anregungen: Barcodescanner- & Tastatureingaben unterscheiden

212 Beiträge seit 2008
vor 9 Jahren

Du könntest den Sacanner an einer RS232 Schnittstelle anschließen, dann hättest du volle kontrolle über das gesannte. Daten die in dein Muster passen kannst du dann via SendKeys weiterleiten.

Gruß
Christoph

A
764 Beiträge seit 2007
vor 9 Jahren

Hallo basstscho,

ich hatte mich mal mit dem Thema beschäftigt und folgende Lösung verwendet:

Distinguishing Barcode Scanners from the Keyboard in WinForms

Using Raw Input from C# to handle multiple keyboards

Hat funktioniert, ist allerdings nicht sehr einfach umzusetzten.

Gruß, Alf

C
2.121 Beiträge seit 2010
vor 9 Jahren

Die Situation hört sich nicht an als wären Tastatureinaben sinnvoll. Was in der Tastatur landet geht nämlich da hin wo der Focus gerade steht. Wenn das eine andere Anwendung ist als die die Eingaben bekommen soll, ist der Ansatz falsch.
Wenn schon über seriell wozu dann doch wieder in die Tastatur einschleifen?

Die Anwendung sollte sich die Daten direkt aus RS232 holen. Wenn das nicht geht könnte eine andere Anwendung sie sich holen und dann direkt per SendMessage an die betroffene Anwendung weitergeben.

B
142 Beiträge seit 2007
vor 9 Jahren

Hallo,

ich stand mal vor dem selben Problem. Letztendlich habe ich mir die Daten auch über einen COM-Port geholt. Ich hatte verschieden Scanner von Honeywell, die konnte man in einen "COM-Port-Simulationsmodus" versetzen. Dies geschieht entweder per Software oder speziellen Konfigurationsbarcodes, die man abscannt.

Dann muss man nur noch abschnorcheln und auf die "Trennzeichen" warten und schon hat man seinen Code.

Sobald der Scanner im COM-Port-Modus läuft, kann man ihn natürlich nicht mehr als Tastaturersatz nutzen, sprich ein Einfügen in Excel wäre beispielsweise nicht mehr möglich.

Gruß
Björn

212 Beiträge seit 2008
vor 9 Jahren

Sobald der Scanner im COM-Port-Modus läuft, kann man ihn natürlich nicht mehr als Tastaturersatz nutzen, sprich ein Einfügen in Excel wäre beispielsweise nicht mehr möglich.

Das geht schon noch, man muss den String nur via SendKeys weiterleiten. Diese Anforderung hatte ich vor kurzem.

Gruß
Christoph