VBA - récupération code claviers

Résolu/Fermé
yrqt - 23 mai 2013 à 20:08
 yrqt - 24 mai 2013 à 23:34
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
A voir également:

2 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
23 mai 2013 à 22:03
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

0
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 ?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
23 mai 2013 à 22:23
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
0
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
0
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.
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 215
24 mai 2013 à 23:26
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
0
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.
0