Español
Foro

USB auslesen ...

 
- Página 1 -



Erasmus.Herold
¡Hola liebe Comunidad.

Möchte lo con diesem Thema todavía una vez bastante anders versuchen, a Ayuda a kommen. El COM Schnittstelle al PC auszulesen es con XProfan simpel.

Como sieht lo de con el USB Schnittstelle?
Sombrero alguien se daran intenta y ha Codeschnipsel para mich?

Bitte no Diskussion en Treiber, Windowshoheiten oder USB2COM Adapter, pero a diesem Hilo Por favor, sólo el Austausch, si alguien con XProfan USB direkt auslesen kann.

Gracias euch.
 
04.05.2019  
 



« Dieser Contribución wurde como Solución gekennzeichnet. »


Paul
Glatz
El "1995378067" en hScanner& es una Handle el Gerät y se se zwischen Programa- oder Computerneustarts ändern.
Der Gerätename (\\?\HID#VID_????&PID_????...) debería konstant bleiben.

Mir es no Möglichkeit bekannt valor anzuzeigen. Aber el VID/PID sieht uno auch en el Geräte-Manager bajo "Hardware-IDs".
 
06.05.2019  
 




Paul
Glatz
¡Hola,

para HID Geräte Yo bisher (außerhalb de XProfan) HIDAPI  [...]  verwendet.

El de Windows bereitgestellten HID APIs verbieten sin embargo el Zugriff en HID-Tastaturen y Mäuse.

Für el Verwendung de HIDAPI en XProfan Yo veces una kleines Beispielprogramm angehangen.

Descargar

Für el Zugriff en HID-Tastaturen y Mäuse u otros (no HID) USB Geräte es una separater Treiber notwendig.
libusb  [...]  enthält una Treiber con el uno de una eigenen Programa kompletten Zugriff en una USB-Gerät erhält.

8 kB
Hochgeladen:04.05.2019
Ladeanzahl100
Descargar
 
04.05.2019  
 




Erasmus.Herold
Das hört se ya una vez prima a. Werde Yo kurzfristig testen.

Bedeutet also.
1. Yo muss el zuletzt genannten zusätzlichen Treiber installieren?
2. El HIDAPI downloaden y bereitstellen?
3. Das kleine Demoprogramm testen?

Saludo y DANKE
Erasmus
 
04.05.2019  
 




Paul
Glatz
Für HIDAPI braucht uno no Treiber y el hidapi.dll Yo en el zip con previsto.

Den Treiber braucht uno para libusb. Mit libusb muss uno son el komplette USB Kommunikation incluso kümmern. Dazu Yo kein Demoprogramm. Tal vez versuche Yo morgen veces eins a redactar.
 
04.05.2019  
 




Erasmus.Herold
¡Hola Paul.

Ein erster Test sieht ya veces nada así schlecht de. Anbei una Screenshot.
Yo erkenne mi 6 USB Anschlüsse. Dazu una Referencia en angeschlossene Tastatur y Ratón de Logitech.

Aus el Ferne fehlt me heute al Sonntag el Macht, una Barcode-Scanner y / oder una RFID-Reader a USB anzuschließen.

Bin gespannt, si Yo entonces una direkten Zugriff darauf bekomme y z.B. una gescannte EAN direkt en una variable abgreifen kann.

271 kB
Hochgeladen:05.05.2019
Ladeanzahl66
Descargar
 
05.05.2019  
 




H.Brill
Der Barcode Reader se en me auch erkannt.

Wobei Yo ya Internet Beispiele en C / Delphi usw.
gesehen habe, el sin libusb el Scanner erkennen
o. auslesen puede.

Es auch encima API y wm_input y entsprechenden
Estructuras. Zuerst muß entonces una Gerät con RegisterRawInputDevices
angemeldet voluntad. Como kommen sólo Standardkonstanten antes, el en el
MSDN beschrieben son.

Lo llevará a cabo schwierig, como XProfan sólo el wichtigsten Standard-Messages
durchläßt. Somit muß uno wahrscheinlich el Messageverwaltung abschalten
y GetMessage trabajo, qué pero en uno grafischen Benutzer-
Oberfläche (GUI) muy hinderlich es.

En Rolands Ejemplo con GetMessage (Messageverwaltung incluso tomar)
bekomme Yo z.B. beim Einlesen uno Barcodes en el Editar el Message 257.

Also se como ya una Message geschickt.

Man podría auch una avanzado Tastatur - Hook escribir, el cierto
Tastenkürzel abfängt. Dazu muß una continuación wiederum el Scanner así
konfigurieren, daß Anfang y Ende des Barcodes con un de el Tastatur
unerreichbaren virt. Tastencode gekennzeichnet se. Aber mejor wäre lo, alles sin Editar campo y en el Hintergrund a hacer.
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
05.05.2019  
 




Paul
Glatz
Yo bin en Búsqueda después de uno Möglichkeit una Barcode Scanner auszulesen auch ya en RegisterRawInputDevices gestoßen.

Jedoch Yo encima RawInput no Möglichkeit gefunden en a verhinden, dass el Eingaben des Scanners zusätzlich a RawInput Messages como normale Tastatureingaben gesendet voluntad.

Somit se z. B. si grad una Editar campo el enfoque ha el Barcode zusätzlich hay eingegeben oder si una Button ausgewählt es se dieser por el Barcodescanner ausgelöst (si la Scanner al Ende des Barcodes Enter "drückt").
 
05.05.2019  
 




H.Brill
Na el wäre sí ya qué.
El Editfelder podría uno en efecto con $00CF
en Read only conjunto, si la Barcode eintrifft
y después de el Lesen otra vez zurücksetzen.
Oder necesidad du necesariamente el ENTER en el Barcode ?
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
05.05.2019  
 




Erasmus.Herold
Gracias para el Ideen y Ansätze.
Gleichwohl vom einfachen (luxuriösen) Erfassen á la COM es doch weit lejos.
Saludo Erasmus
 
05.05.2019  
 




H.Brill
Was para una Scanner hast du porque ?
Kann uno el no ajustar en COM
Emulation ?
 
Benutze XPROFAN X3 + FREEPROFAN
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
05.05.2019  
 




Erasmus.Herold
Exactamente el es mein Ansatz.
Un Solución en XProfan para reine USB Geräte para encontrar.
Via COM es nie una Problema.
 
05.05.2019  
 




Paul
Glatz
Posesiones otra vez con RawInput rumprobiert y una Möglichkeit gefunden a Eingaben des Scanners abzufangen.

Das Programa setzt si una Eingabe vom Scanner erkannt se el Focus en una verstecktes Editar y si una Enter vom Scanner kommt se el Foco el ursprüngliche Control zurück gesetzt y Barcode kann de el verstecken Editar gelesen voluntad.

Posesiones gerade no Barcodescanner para Testen como y podría lo por lo tanto sólo uno zweiten Tastatur testen.
Struct RAWINPUTDEVICE = usUsagePage%, usUsage%, dwFlags&, hwndTarget&
Struct RAWINPUTKEYBOARD = dwType&, dwSize&, hDevice&, wParam&, MakeCode%, Flags%, Reserved%, VKey%, Message&, ExtraInformation&
Def RegisterRawInputDevices(3) !"User32", "RegisterRawInputDevices"
Def GetRawInputData(5) !"User32", "GetRawInputData"
Def GetRawInputDeviceList(3) !"User32", "GetRawInputDeviceList"
Def GetRawInputDeviceInfoA(4) !"User32", "GetRawInputDeviceInfoA"
Título de la ventana "RawInput"
Ventana 1000, 600
SubClass %HWnd, 1
Declarar hScanner&, CodeStatus%, CodeFocus&
DrawText 5, 5, "Scanner:"
Var hDev& = Crear("ChoiceBox", %hwnd, 1, 5, 25, Width(%hwnd) - 10, 300)
AddDevices hDev&
Crear("Button", %hwnd, "Testbutton", 5, 60, 200, 25)
Crear("Edit", %hwnd, "Testedit", 5, 90, 200, 25)
Var hCode& = Crear("Edit", %hwnd, "", 2000, 2000, 0, 0)// Verstecktes Textfeld para Barcodeeingabe
Var hLog& = Crear("MultiEdit", %hwnd, "", 5, 120, Width(%hwnd) - 10, Height(%hwnd) - 125)
// RawInput registrieren
Declarar rid#
Dim rid#, RAWINPUTDEVICE
rid#.usUsagePage% = 1// RegisterRawInputDevices
rid#.usUsage% = 6// Keyboard
rid#.dwFlags& = 0// $30 /* RIDEV_NOLEGACY */
rid#.hwndTarget& = %hwnd

Caso negativo RegisterRawInputDevices(rid#, 1, SizeOf(rid#))

    MessageBox("RawInput podría no registriert voluntad " + Hex$(%WinError), "", 0)

EndIf

// Hauptschleife

Mientras que 1

    WaitInput

    If Clicked(hDev&)

        hScanner& = Val(Substr$(GetText $(hDev&), 2, "|"))

    ElseIf %MenuItem = 1234

        SetText hLog&, GetText $(hLog&) + "Barcode gelesen: " + GetText $(hCode&) + "\n"

    EndIf

EndWhile

Proc AddDevices

    Parámetros hList&
    Declarar numDevices&, devices#, hDevice&
    GetRawInputDeviceList(0, Addr(numDevices&), 8)

    If numDevices& = 0

        Volver

    EndIf

    Dim devices#, numDevices& * 8
    GetRawInputDeviceList(devices#, Addr(numDevices&), 8)

    WhileLoop numDevices&

        If Largo(devices#, (&Loop * 8) + 4) = 1/* RIM_TYPEKEYBOARD */

            hDevice& = Largo(devices#, &Loop * 8)
            AddStrings(hList&, GetDeviceName(hDevice&) + "|" + Str$(hDevice&))

        EndIf

    EndWhile

ENDPROC

Proc GetDeviceName

    Parámetros hdev&
    Declarar buf#, len&
    GetRawInputDeviceInfoA(hdev&, $20000007  0, Addr(len&))/* RIDI_DEVICENAME */

    If len& = 0

        Volver ""

    EndIf

    Dim buf#, len&
    GetRawInputDeviceInfoA(hdev&, $20000007  buf#, Addr(len&))/* RIDI_DEVICENAME */
    Volver String$(buf#, 0)

ENDPROC

SubClassProc

    If SubClassMessage(%hWnd, $00ff)/* WM_INPUT */

        Declarar raw#
        Dim raw#, RAWINPUTKEYBOARD
        Var size& = SizeOf(raw#)

        Caso negativo GetRawInputData(&sLParam, $10000003  raw#, addr(size&), 16) == -1/* RID_INPUT */

            If (raw#.hDevice& = hScanner&) AND ((raw#.flags% & 1  = 0)/* RI_KEY_BREAK */

                Caso negativo GetFocus(hCode&)

                    CodeFocus& = %GetFocus
                    SetFocus(hCode&)
                    SetText hCode&, ""

                EndIf

                If raw#.VKey% = 13// scancode 13 = Enter

                    SetFocus(CodeFocus&)
                    CodeFocus& = 0
                    SetMenuItem 1234

                EndIf

            EndIf

        EndIf

    EndIf

ENDPROC

 
05.05.2019  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

19.759 Views

Untitledvor 0 min.
Member 862464120.05.2024
Sven Bader03.07.2023
H.Brill14.05.2023
Normann Strübli30.01.2023
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie