| |
|
|
- 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. |
|
|
| |
|
|
|
« Dieser Contribución wurde como Solución gekennzeichnet. » |
|
- Página 3 - |
|
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". |
|
|
| |
|
|
|
|
| |
|
- Página 2 - |
|
Paul Glatz | Hatte He olvidado. Pida a los Descargar ahora hinzugefügt. |
|
|
| |
|
|
|
Erasmus.Herold | Sieht entonces así de ...
|
|
|
| |
|
|
| |
|
- Página 3 - |
|
|
Erasmus.Herold | Referencia:
Derzeit es así, egal, si Yo oben kein (!) USB Device auswähle, si Yo el Tastatur wähle, oder el USB Scanner ....
... si yo encima Tastatur una Eingabe mache, erscheint el ASCII Code sin dass el Cursor blinken muss.
El Erfassung es also bien (porque blind), pero se todavía no en una festes USB Device fixiert.
Saludo y Dank |
|
|
| |
|
|
|
Paul Glatz | El RawInput Meldungen Yo antes el Filtern ausgegeben.
Hier otra vez una neue Versión, el en media Tests zuverlässiger en el Scanner reagiert.
Descargar
Hier todavía una Video, como trabajo se: Descargar
El neue Versión zeigt RawInput Meldungen sólo todavía para el gewählte Gerät. |
|
|
| |
|
|
|
Erasmus.Herold | Mit Video? Ganz großes Kino!!!
Mein Ergebnis: Yo wähle nun media USB Scanner. Mache una Eingabe. Nach el "Enter" des Scanners kommen el Daten. Zuletzt el gesamte String.
Das sieht ya veces muy bien de. Als nächstes teste Yo el veces con un USB (HID) RFID-Reader.
Nächste Rückmeldung folgt. |
|
|
| |
|
|
|
Erasmus.Herold | ... y otra vez una Schritt más.
Mein Video con ausgelesenen RFID Tags findest du hier: [...] |
|
|
| |
|
|
|
Erasmus.Herold | Yo bastle a deinem Code rum y minimiere me de tiempo, Yo brauche. Das Ergebnis hay entonces später zurück.
hScanner& nimmt en me para el angeschlossenen USB Scanner el Valor 1995378067 a. Darüber kann Yo el Gerät fix auslesen.
Kann Yo diesem Valor auch unabhängig de XProfan para el Zuweisung bajo Windows encontrar oder erkennen?
Ziel wäre una feste Vorgabe des USB Ports y no el Auswahl aller |
|
|
| |
|
|
|
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". |
|
|
| |
|
|
|
H.Brill | wow, sieht sí ya veces bien de. Tal vez veces en el Registry Ausschau halten : [...] |
|
|
| 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. | 06.05.2019 ▲ |
|
|
|
|
Erasmus.Herold | Prima.
1. Dann voluntad Yo, el Scanner morgen veces encima seinen fest definierten Gerätenamen packen ...
2. ... y el EANs en uno Listbox recoger.
Mi Rückmeldung se folgen.
Gracias Euch. |
|
|
| |
|
|
|
Erasmus.Herold | Anbei nun veces mein angepasster Test-Quellcode con fest vorgegebenem USB Anschluss. Das Auslesen via Barcode-Scanner y RFID Reader (siehe Video más oben) funktioniert super.
In el nächsten Stufe folgt nun el Implementierung en el "RFID Management Studio". Weitere Rückmeldung se folgen. Gracias !!!
Título de la ventana "RawInput"
Ventana 1000, 600
SubClass %HWnd, 1
'=======================================================================================================================================================
'=== VARIABLEN DEKLARIEREN =============================================================================================================================
'=======================================================================================================================================================
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"
Declarar hScanner&, CodeStatus%, CodeFocus&, hDev&
Declarar HID_Geraet_Nr&, HID_Geraet_temporaere_ID&, counter&
// 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
HID_Geraet_Nr& = 1
'=======================================================================================================================================================
'=== PROCEDUREN ANLEGEN ================================================================================================================================
'=======================================================================================================================================================
Proc AddDevices_USB
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)
counter& = 1
WhileLoop 0,numDevices& - 1
If Largo(devices#, (&Loop * 8) + 4) = 1/* RIM_TYPEKEYBOARD */
hDevice& = Largo(devices#, &Loop * 8)
AddStrings(hList&, GetDeviceName_USB(hDevice&) + "|" + Str$(hDevice&))
// ALLE USB-PORTS ANZEIGEN
imprimir "benutzte USB-Ports: ", GetDeviceName_USB(hDevice&) + "|" + Str$(hDevice&)
if (counter& = HID_Geraet_Nr&)
HID_Geraet_temporaere_ID& = hDevice&
endif
counter& = counter& + 1
EndIf
// ALLE USB-PORTS ANZEIGEN
'imprimir "alle USB-Ports: ", GetDeviceName_USB(hDevice&)
EndWhile
// GEWÄLTE TEMPORÄRE HID ID ANZEIGEN
imprimir : imprimir "benutzt se esta temporäre HID ID [" + str$(HID_Geraet_Nr&) + "]: " + str$(HID_Geraet_temporaere_ID&)
ENDPROC
Proc GetDeviceName_USB
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 */
'imprimir "hdev: ", hdev&
'imprimir "Add: ", GetDeviceName_USB(hDevice&)
Volver String$(buf#, 0)
ENDPROC
SubClassProc
// El Procedimiento, a el beim Subclassing todos Messages umgeleitet voluntad,
// para deren Ventana o, Dialogelement el Subclassing eingeschaltet es.
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& = HID_Geraet_temporaere_ID&) AND ((raw#.flags% & 1 = 0)/* RI_KEY_BREAK */
'SetText hLog&, GetText$(hLog&) + "RawInput: Gerät: " + Str$(raw#.hDevice&) + " Taste: " + Str$(raw#.VKey%) + " Flags: " + Str$(raw#.flags%) + "\n"
Caso negativo GetFocus(hCode&)
CodeFocus& = %GetFocus
SetFocus(hCode&)
SetText hCode&, ""
EndIf
If (raw#.VKey% = 13) O (raw#.VKey% = 9)// scancode 13 = Enter 9 = Tab
SetMenuItem 1234
EndIf
EndIf
EndIf
EndIf
ENDPROC
'=======================================================================================================================================================
'=== HAUPTPROGRAMM =====================================================================================================================================
'=======================================================================================================================================================
'hDev& = Crear("ChoiceBox", %hwnd, 1, 5, 25, Width(%hwnd) - 10, 300)
// USB DEVICES ERMITTELN
AddDevices_USB hDev&
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)
// Hauptschleife
Mientras que 1
WaitInput
If Clicked(hDev&)
hScanner& = Val(Substr$(GetText $(hDev&), 2, "|"))
ElseIf %MenuItem = 1234
SetFocus(CodeFocus&)
CodeFocus& = 0
SetText hLog&, GetText $(hLog&) + "Barcode gelesen: " + GetText $(hCode&) + "\n"
EndIf
EndWhile
|
|
|
| |
|
|
|
Erasmus.Herold | Actualización:
In Anlehnung a Pauls Ideen es nun una USB_Port_Viewer entstanden.
Dieses Programa erkennt todos vorhandenen USB Ports en un Sistema, zeigt el benutzten Ports a y liefert el benötigte temporäre ID para Auslesen en el Hintergrund.
Anbei el Programa samt Quellcode.
|
|
|
| |
|
|