VBA - récupération code claviers

Résolu/Fermé
Signaler
-
 yrqt -
Bonjour,

Je souhaiterais récuperer le code d'un clavier.
Je m'explique, j'ai actuellement deux lecteurs de codes barres que j'ai branché sur mon ordinateur portable par liaison USB. Lorsqu'elles sont paramétré, elle apparaisse comme des claviers.
J'ai donc effectué un programme sous Excel afin d'y développer un magasin de produit. Or, j'ai besoin de savoir quel douchette j'appuie actuellement.

Pour cela, je pense qu'il doit y avoir un code me permettant de savoir quel clavier est utilisé à l'instant T, et de ce fait, je saurais utilisé les fonctions adéquat.

Vous remerciant par avance.

Bonne soirée. Cordialement

Yrqt

2 réponses

Messages postés
24222
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
29 novembre 2021
6 978
Bonjour,

une piste par une fonction API.
GetKeyboardLayoutName :
The GetKeyboardLayoutName function retrieves the name of the active keyboard layout.
Const KL_NAMELENGTH = 9
Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Private Sub test()
    Dim strName As String
    'Create a buffer
    strName = String(KL_NAMELENGTH, 0)
    'récupérer keyboard layout name
    GetKeyboardLayoutName strName
    MsgBox strName
End Sub

Voir ce que ça donne.

eric

Bonsoir,

Tout d'abord, un merci pour la réponse rapide de votre part.

Es-t-il possible d'avoir des précisions sur le fonctionnement ?
Messages postés
24222
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
29 novembre 2021
6 978
Les fonctions API sont des fonctions windows.
Tu copie-colles le code et tu testes pour voir si vraiment tu n'as qu'une seule douchette d'active en même temps, et si elles te retournent 2 codes différents.
Je ne pourrai t'aider plus.

eric
Merci beaucoup. Je n'ai pas le matériel sous la main, je testerais demain sans faute. Encore merci pour la réponse Eric.

Yoan
Bonsoir Eric

Excuse moi de te déranger une nouvelle fois, mais j'ai effectuer l'execution de ton code, mais cela ne fonctionne pas. En effet, quel que soit le matériel que j'utilise, il me met "0000040C".

As tu une solution ?
J'ai regarder en parallèle pour récupérer le nom ou autre pour dissocier les deux matériels, mais pas moyens de trouver....

Bonne soirée.
Messages postés
24222
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
29 novembre 2021
6 978
Sur excel tu n'auras rien je pense.
Dans les fonctions API tu as également GetKeyboardType() mais si c'est le même matériel ils te retourneront la même chose également.

Une suggestion : te faire 2 étiquettes dédiées avec un code particulier que tu scannerais en premier à chaque fois que tu changes de douchette.
Dans le programme dès que tu lis ce code tu sais que ça correspond à l'identification de la douchette et non à un produit.

eric
D'accord, merci encore, je vais donc effectuer des modifications..

Dommage que cela soit limité, mais vous m'avez apporté une aide non négligeable. Merci.