1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

DEMANDE Récupérer et identifier quel clavier ou scanner codebarre HID a envoyé des data

Discussion dans 'Windev' créé par SavageBeast, Déc 3, 2022.

  1. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    54
    J'aime reçus:
    29
    Bonsoir à tous,

    Ayant perdu le source que j'avais réalisé il y a plusieurs années, je tente de recréer du code permettant de récupérer des data (touches clavier) envoyés soit par un clavier soit par un lecteur codebarre, afin de diriger ces données sur une fenêtre ou une autre.

    Il existe un exemple en C++ :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Le lien en relation chez 'Crosoft :

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    Mais je reconnais volontiers que je coince sur le sujet. Si l'on arrive à le traduire en WD, ce sera utile pour tout le monde qui est dans une configuration similaire. Je poste la partie de code que j'ai déjà réalisé. Merci à ceux qui souhaitent aider à la compléter. Je précise que lors de l'éxécution, je reçois un erreur "0" alors qu'étant un booléen, je devrais en théorie recevoir 1. Par contre, pas de détails récupérés par l'API avec GetLastError.

    Le code que j'ai commencé :

    nRIDEV_REMOVE est un entier sans signe sur 4 octets = 0x00000001
    nRIDEV_EXCLUDE est un entier sans signe sur 4 octets = 0x00000010
    nRIDEV_PAGEONLY est un entier sans signe sur 4 octets = 0x00000020
    nRIDEV_NOLEGACY est un entier sans signe sur 4 octets = 0x00000030
    nRIDEV_INPUTSINK est un entier sans signe sur 4 octets = 0x00000100
    nRIDEV_CAPTUREMOUSE est un entier sans signe sur 4 octets = 0x00000200
    nRIDEV_NOHOTKEYS est un entier sans signe sur 4 octets = 0x00000200
    nRIDEV_APPKEYS est un entier sans signe sur 4 octets = 0x00000400
    nRIDEV_EXINPUTSINK est un entier sans signe sur 4 octets = 0x00001000
    nRIDEV_DEVNOTIFY est un entier sans signe sur 4 octets = 0x00002000

    RawInputDevice est une structure
    UsagePage est un entier sans signe sur 2 octets
    Usage est un entier sans signe sur 2 octets
    Flag est un entier sans signe sur 4 octets
    Target est un entier système // A handle to the target window. If NULL it follows the keyboard focus.
    FIN
    stHIDDevice est un RawInputDevice

    stHIDDevice.UsagePage = 1
    stHIDDevice.Usage = 6
    stHIDDevice.Flag = nRIDEV_INPUTSINK // 0 provoque l'erreur
    stHIDDevice.Target = Handle(SAI_Texte)

    nCbSize est un entier sans signe = Taille(stHIDDevice.UsagePage) + Taille(stHIDDevice.Usage) + Taille(stHIDDevice.Flag) + Taille(stHIDDevice.Target)

    SI API("USER32","RegisterRawInputDevices",&stHIDDevice,1,nCbSize) <> 1 ALORS
    Erreur("Api:"+API("KERNEL32","GetLastError"))
    FIN
     
    #1 SavageBeast, Déc 3, 2022
    Dernière édition: Déc 3, 2022
    Tags:
  2. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    54
    J'aime reçus:
    29
    Salut à tous, j'ai corrigé une erreur sur la ligne :
    nCbSize est un entier sans signe = Taille(stHIDDevice.UsagePage) + Taille(stHIDDevice.Usage) + Taille(stHIDDevice.Flag) + Taille(stHIDDevice.Target)

    qui pour ne pas créer une erreur (même en utilisant 0 pour le .Flag) doit devenir :
    nCbSize est un entier sans signe = Dimension(stHIDDevice)

    Voilà. Je continue à explorer des possibilités, voir si j'arrive à obtenir ce que je veux.
     
  3. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    54
    J'aime reçus:
    29
    Bonjour tout le monde ! J'ai remis le nez dedans, mais ça ne joue pas comme je le souhaite. Je recherche donc un passionné des API 'Crosoft, qui puisse reprendre / continuer ce que j'ai déjà fait. L'idée étant de pouvoir différencier les claviers / scanner qui sont utilisés (HID) et pouvoir envoyer les touches utilisées dans la bonne fenêtre / saisie de texte.

    Le projet est en version 26, mais je peux le passer en version 23 à 29. Je fournis les liens qui m'ont servi de base. La solution est rémunérée. Merci de me contacter par mp avec la version de WD que vous utilisez, et le montant désiré (voir si cela rentre dans mon budget).

    Cordialement, SavageBeast.
     

Partager cette page

Chargement...