C + + konsolvindue for kun at tage input fra USB

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg er ikke effektiv i C ++, så svarene forklares godt/i detaljer ville blive værdsat tak.
Jeg har lavet et lille C ++-program, der tager input fra en RFID-læser (svarende til en stregkodescanner). Jeg har forsøgt at søge over internettet for et simpelt svar, men har haft nogle blandede resultater.


Jeg har to muligheder, den første er meget preffered:



  1. Hold konsolprogrammet i baggrunden (bare minimeret er fint) og tag tastetryk fra USB RFID-læseren, og KUN fra den pågældende kilde, så brugeren på pc'en kan bruge sit tastatur og åbne andre programmer uden ansøgningen være i fokus.

  2. Hold applikationen i fokus, selvom tastaturet eller musen uheldigvis trykkes, så selvom proceslinjen er klikket eller applikationen taber fokus, genvinder fokuset, så det kan fortsætte med at gøre det.



Det svar jeg har brug for kan ikke bare være 'Brug denne funktion SetWindowFocus ()' eller 'Brug dette bibliotek og bla bla', jeg har brug for et detaljeret svar på præcis, hvad jeg skal gøre, fordi jeg ikke engang ved, hvor jeg skal starte, tak du meget for din hjælp!

Bedste reference


Vises RFID-læseren som et HID-tastatur? Win32 Raw Input API giver dig mulighed for at abonnere på et bestemt tastatur og differentiere dets input fra det ægte tastatur.


Start med at læse http://www.toymaker.info/Games/html/raw\_input.html[1]


For at gøre dette skal din konsol-applikation oprette et normalt vindue (jeg tror det kan være skjult) ud over konsolvinduet.


Det lyder som om du virkelig har brug for nogle tutorials på Win32 programmering.


Da du ikke har givet os nogen detaljer (hvilken compiler bruger du en IDE, er der et bestemt rammebibliotek du foretrækker at bruge) det er meget svært for os at give dig specifikke råd. Men der er nogle gode indledende artikler om Win32 vinduesoprettelse og beskedbehandling på Raymond Chens blog 'The Old New Thing'. Der er endda et komplet skeleteksempel, du kan bruge til at starte dine egne programmer. [2]

Andre referencer 1


W.r.t, der altid bevarer fokus, kan du ikke gøre det.


Se dette blogindlæg om de trin, som Microsoft har taget i nyere versioner af Windows for at undgå applikationer, der stjæler fokus og er 'altid på toppen'. [3]


Jeg foreslår enten at gå i fuldskærm, så man undgår muligheden for at klikke på proceslinjen (men man kan bruge Windows-knappen) eller hænge dybt ind i inputenheden for altid at få arrangementer, uanset hvad brugeren gør.


Hverken løsning er pæn, men på Windows, det er reglerne.

Andre referencer 2


Jeg havde det samme problem. Jeg søgte og forsøgte mange ting.


Med hidapi f.eks. RFID viser info, men jeg kunne ikke læse data.
C ++-programmet fungerer, men RFID-læseren skriver hex-nummer overalt. Måske har alle nogle kode til at initialisere læseren til mit program. [4]