Slaan oor na inhoud

Barcode Scanner Emulator

HID-sleutelbordwig verduidelik

Sleutelbordwig is die verstekbedryfsmodus vir die oorweldigende meerderheid strepieskodeskandeerders. Hierdie gids verduidelik wat dit is, hoe dit op USB-vlak werk, en wat dit vir die toets van jou toepassing beteken.

Wat is ’n sleutelbordwig?

Die term kom van ouer seriepoortskandeerders wat letterlik tussen ’n sleutelbord en die rekenaarpoort "ingewig" is, die sleutelbordsein onderskep het en geskandeerde karakters daarin ingespuit het. Moderne skandeerders het nie meer fisiese inwigging nodig nie — die frase verwys nou na enige skandeerder wat geskandeerde data aanbied asof dit van ’n sleutelbord kom, ongeag die verbindingstipe.

USB HID en sleutelbordnabootsing

USB definieer ’n Human Interface Device-klas (HID) spesifiek vir sleutelborde, muise en soortgelyke invoertoestelle. Wanneer ’n skandeerder op USB as ’n HID-sleutelbord opgesom word, laai die bedryfstelsel sy generiese, ingeboude sleutelborddrywer — geen skandeerderspesifieke drywer is nodig nie. Die skandeerder se firmware skakel elke gedekodeerde karakter om na die HID-sleutelkode wat ’n fisiese sleutelbord sou stuur, en verslae word oor dieselfde onderbrekingsoordragmeganisme gelewer wat enige USB-sleutelbord gebruik.

Hoe jou toepassing skandeerderinvoer sien

Vinnige stoof sleutelslae teenoor menslike tikwerk: ’n Skandeerder stuur die volle loonvrag as ’n vinnige reeks keydown/keyup-pare en is tipies binne minder as ’n sekonde klaar, ongeag die strepieskodelengte.

Geen muisgebeurtenisse nie: Skandeerders in HID-sleutelbordmodus genereer nooit wyser-, klik- of fokusgebeurtenisse nie. As jou veld nie gefokus is wanneer die skandering plaasvind nie, gaan die invoer verlore of beland dit by watter element ook al wel fokus het.

Geen plakgebeurtenisse nie: Omdat die data as individuele sleutelslae aankom eerder as ’n knipbordbewerking, sal hanteerders van die paste-gebeurtenis nie skandeerderinvoer sien nie, en invoermaskers wat net na paste luister, sal dit stilweg mis.

Sleutelborduitlegprobleme

Waarom verkeerde karakters verskyn: Die skandeerder koppel gedekodeerde karakters aan HID-sleutelkodes met sy eie opgestelde sleutelborduitleg. As daardie uitleg nie by die bedryfstelsel se sleutelborduitleg pas nie, kan karakters omgeruil word — ’n klassieke simptoom is dat syfers of leestekens as die verkeerde karakter skandeer op QWERTY- teenoor AZERTY-stelsels.

Lokale-wanaanpassing: Dit is ’n opstellingsprobleem aan die skandeerderkant, nie ’n sagtewarefout nie. Die meeste skandeerders ondersteun lokale-wisseling via opstellingsstrepieskodes in hul handleiding, en die herstel beteken om die skandeerder te herprogrammeer om by die bedryfstelsellokale te pas, nie om toepassingskode te verander nie.

Voorvoegsels en agtervoegsels

Skandeerders ondersteun algemeen opstelbare voorvoegsel- en agtervoegselreekse om die loonvrag. Die mees algemene agtervoegselwaardes is ENTER (CR, 0x0D), TAB (0x09), en soms ’n volle CR+LF-paar. Voorvoegsels is minder algemeen, maar word soms gebruik om skanderings na spesifieke velde in ouer terminaaltoepassings te stuur.

Beperkings vir blaaiertoetsing

’n Blaaier kan nie rou USB-HID-pakkette sien nie, kan nie gekoppelde HID-toestelle spesifiek as ’n skandeerder opsom nie (buite die WebHID-API, waardeur die meeste skandeerders nie data blootstel nie), en kan nie ’n skandeerder in HID-sleutelbordmodus van ’n werklike sleutelbord onderskei nie. Net blaaiersigbare sleutelbordgebeurtenisse (keydown, keyup, keypress) is vir JavaScript toeganklik, en dit is presies wat die hulpmiddels op hierdie werf inspekteer.

Verwant

Gebruik die Sleutelbordgebeurtenistoetser om rou sleutelbordgebeurtenisse te inspekteer, of lees die gids ENTER- teenoor TAB-agtervoegsels vir besonderhede oor agtervoegselopstelling.