bonsoir,
voila ,je suis en access 2003 et j'ai trois lecteur de badge magnetique en usb .j'aimerais savoir comment faire pour que la base reconnaisse quel lecteur est utilisé,sachant qu'il remplisse une seule zone texte.
d'avance je vous remercie.
bonsoir,
voila ,je suis en access 2003 et j'ai trois lecteur de badge magnetique en usb .j'aimerais savoir comment faire pour que la base reconnaisse quel lecteur est utilisé,sachant qu'il remplisse une seule zone texte.
d'avance je vous remercie.
Bonjour,
est-ce que les lecteurs de badges apparaissent dans la liste des lecteurs de la station de travail, au même titre que les disques durs et les lecteurs CD/DVD ?
Si oui, est-ce que quelque chose de ce genre fait l'affaire ?
Dans un module standard
1) Récupérer la liste des lecteurs de badges
2)Renvoyer la lettre du lecteur courant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Type BADGE_READER Lettre As String N°Serie As String End Type Public BdgReaders(1 To 3) As BADGE_READER Private Sub GetBdgReaders() Dim SysF, Lecteur Dim i As byte Set SysF=CreateObject("Scripting.FileSystemObject") i=0 For Each Lecteur In SysF.Drives 'Si le lecteur est un lecteur amovible est <> du lecteur de disquette If Lecteur.DriveType=1 And Lecteur.DriveLetter>"B" Then i=i+1 bdgReaders(i).Lettre=Lecteur.DriveLetter & ":\" bdgReaders(i).N°Serie=Lecteur.SerialNumber End if Next Set SysF=Nothing End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Public Function GetCurrentBdgReader() As String Dim SysF Dim i As Byte 'Si la liste des lecteurs n'est pas connue la récupérer if bdgReaders(1).letter="" Then GetBbgReaders Set SysF=CreateObject("Scripting.FileSystemObject") For i=1 To 3 If SysF.GetDrive(bdgReaders(i).Lettre).IsReady Then GetCurrentBdgReader=bdgReaders(i).Lettre Exit For End if Next i Set SysF=Nothing End function
les lecteurs n'apparaissent pas dans la liste des lecteurs de la station de travail,seulement dans le gestionnaire de peripherique sous peripherique d'interface utilisateur (HID) et quand j'ouvre il me renvoie une chaine de caractères avec VID ET PID
est ce que le numero d'instance du périphérique pourrait servir de numero de série?
Comme je le pensais, je me suis avancé.
Tu dois sûrement avoir un logiciel qui renvoie les infos de la carte lue ?
je n'ai pas de logiciel avec les lecteurs de badge.avant de commencer j'aurai voulu identifier quel lecteur etait actif lors du passage du badge pour que aprés je puisse faire une affectation.
Je vois, de quelle manière fais-tu une affectation ?
avec un lecteur quand le badge passe et qu'il est reconnu ,je positionne la souris sur un bouton .mais quand je rajoute un secon lecteur je ne peux pas utiliser cette méthode.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Private Sub texte300_afterupdate() If Me.Texte300.Value = "%12345?"Then SetCursorPos 720, 590 mouse_event MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 720, 590, 0, 0 SetCursorPos 380, 155 mouse_event MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 380, 155, 0, 0 Else SetCursorPos 380, 155 mouse_event MOUSEEVENTF_LEFTDOWN + MOUSEEVENTF_LEFTUP, 380, 155, 0, 0 End If Me.Texte300.Value = "" End Sub
peut on faire apparaitre dans le poste de travail un peripherique USB (HID)et lui assigné une lettre ?
Bonsoir,
non, tu ne peux pas, ce sont des périphériques d'entrées. Il faut je crois utiliser les API windows http://msdn.microsoft.com/en-us/libr...43(VS.85).aspx
j'ai trouvé cette adresse,tu crois que cela pourrai faire l'affaire?
http://www2.hawaii.edu/~hermany/api.htm
a quoi pourrai me servir les API puisque dans le gestionnaire de peripheriques
j' ai les renseignement USB/VID ET PID;est ce que ces renseignement ne sont pas suffisant pour pouvoir faire une affectation materielle?
Bonjour,
à ce niveau, je suis incompétent. Je garde les reflexes de programmeur assembleur 16 bits; imaginant qu'il faut interroger les registres du port ou créer un driver pour récupérer les messages provenant des périphériques. Là, je ne sais pas comment ça se passe avec un seul lecteur, encore moins avec trois.
ok je te remercie quand même pour ton aide.mais une petite question.y aurait il un moyen de programmer differemment? je m'explique:
j' ai 3 lecteurs, lecteur 1 ; lecteur 2 lecteur 3
j'ai 5 utilisateurs A ,B,C, D,E
chaque utilisateur n'aurait pas les meme droits:
A,B,D lecteur 1
A,B,C,D lecteur 2
A,B,D,E lecteur 3
y aurait il un moyen de mettre une condition pour que A,B et E ne commande pas la méme chose meme en changeant de lecteur?
Oui, il me manque un truc dans ta requête.
Tu disposes d'un activex, d'une dll... comment reçois-tu les messages des lecteurs ? C'est là que je suis perdu ?
en fait le lecteur est en hid keyboard il n'a besoin de rien.des que je passe un badge il me dit ce qui est inscrit dans une zone de texte si A est inscrit dans le badge,si je passe le badge il me renvoi A dans la zone texte(pas de dll d'installer ni active X)
est ce qu'en utilisant le select case cela pourrait fonctionner?
ji'ai repris ton morceau de code ,sachant que j'ai un projet similaire je n'arrivé pas a simuler un click,tandis que maintenant ca marche un deplacant la souris.je te remercie.
merci,content de t'avoir aider ,mais pour moi j'ai toujours un problème et je ne sais pas comment le résoudre
salut à tous,
le gestionnaire de périphérique ne te donne pas l'activité de celui-ci.Envoyé par fred271
tes lecteurs se comportent comme de périphériques supplémentaires comme s'il y avait trois souris ou trois clavier sur l'usb.
ils déclenchent un événement et un message.
la seul partie que tu peux gérer par défaut sur access c'est la réception d'une partie du message: les caractères lu par le lecteur de badge.
il te faut donc utiliser des API, et dont le lien que t'a donné ilank me parait une bonne piste, pour intercepter l'événement avec le message complet qui doit contenir aussi l'origine du message (sa provenance) et ainsi savoir quelle lecteur a été utilisé.
bonne continuation,
j'ai pu identifier mon lecteur de badge (identificateur global unique =GUID)
GUID {745A17A0-74D3-11D0-B6FE-00A0C90F57DA}
comment je peux l'utiliser maintenant qu'il est identifié?
à défaut d'avoir la science infuse, je te suggère plutôt d'attaquer la lecture par api des événements et de débugger les messages entrants afin d'identifier le message du bagde et ainsi extraire du message la partie id qui je suis certain ne sera pas le GUID (trop long pour être inclus dedans).
le seul probleme c'est que je ne sais pas faire cela.j'ai un viewer usb et il ne m'indique aucune données a part ce qui est sur le badge.
voila les seules informations que j'ai pu receuillir via usb monitor.(adressage du port usb et ce qui y circule.)la seule chose qui appartient réellement au lecteur est le GUID;
Pipe Handle: 0x828ac364 (Endpoint Address: 0x81)
Get 0x8 bytes from the device
02 00 00 00 00 00 00 00 ........
000337: Bulk or Interrupt Transfer (DOWN), 26.03.2009 21:00:20.897 +0.0
Pipe Handle: 0x828ac364 (Endpoint Address: 0x81)
Get 0x8 bytes from the device
000338: Bulk or Interrupt Transfer (UP), 26.03.2009 21:00:20.907 +0.010. Status: 0x00000000
Pipe Handle: 0x828ac364 (Endpoint Address: 0x81)
Get 0x8 bytes from the device
00 00 00 00 00 00 00 00 ........
000339: Bulk or Interrupt Transfer (DOWN), 26.03.2009 21:00:20.907 +0.0
Pipe Handle: 0x828ac364 (Endpoint Address: 0x81)
Get 0x8 bytes from the device
000340: Bulk or Interrupt Transfer (UP), 26.03.2009 21:00:20.907 +0.0. Status: 0x00000000
Pipe Handle: 0x828ac364 (Endpoint Address: 0x81)
Get 0x8 bytes from the device
00 00 28 00 00 00 00 00 ..(.....
000341: Bulk or Interrupt Transfer (DOWN), 26.03.2009 21:00:20.907 +0.0
Pipe Handle: 0x828ac364 (Endpoint Address: 0x81)
Get 0x8 bytes from the device
Pipe Information (Handle 0x828ac364, Endpoint address 0x81)
Maximum packet size: 0x8
Endpoint address: 0x81
Interval: 0x1
Transfer Type: Interrupt
Maximum transfer size: 0x1000
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager