Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

empreinte digital avec windev

50 réponses
Avatar
yedaye
Salut
Je d=E9veloppe une application de reconnaissance par empreinte digital
avec windev 10.
J'ai achet=E9 le Microsoft fingerprint reader et j'ai le fingerprint
SDK de Griaule.

Mon probl=E8me est le suivant .

la fonction CapRawImageToHandle est d=E9finie dans le SDK avec les
param=E8tres suivants:

Returns a picture display handle (IPictureDisp) to the supplied raw
grayscale fingerprint image.

Return On success, GR_OK is returned.
On failure, the appropriate error code is returned.

Parameters
[in] rawImage A raw grayscale fingerprint image.

[in] width Fingerprint image width in pixels.

[in] height Fingerprint image height in pixels.

[in] hdc The device context handle (HDC) in which the picture will be
created.

[out] handle The fingerprint picture display handle (IPictureDisp).

Mon code windev est le suivant :

idsensor est une cha=EEne
moncontext, monhdc, monhandle sont des entiers
monimage est un Variant
ActiveX1>>CapInitialize()
ActiveX1>>Initialize()
ActiveX1>>CreateContext(moncontext)
ActiveXEv=E9nement("montest",ActiveX1,"SensorPlug")
ActiveX1>>CapStartCapture(idsensor)
monhdc=3DdD=E9butDessin(Image1)
monhandle=3DHandle(Image1)
ActiveX1>>CapRawImageToHandle(monimage,355,390,monhdc,monhandle)
ActiveX1>>StopCapture(idsensor)

quand je teste, il me met l'erreur suivante :

" En tentant d'invoquer la m=E9thode <CapRawImageToHandle>, l'objet
Automation/ActiveX a renvoy=E9 l'erreur suivante : 'Erreur 80020005,
Type incorrect pour le param=E8tre 5' "

Quelqu'un a une id=E9e?

Merci d'avance

10 réponses

1 2 3 4 5
Avatar
Romain PETIT
Dans son message précédent, a écrit :
Salut



Salut,

[out] handle The fingerprint picture display handle (IPictureDisp).



-> C'est un paramètre en sortie...(donc rien à voir avec le handle du
champ image...)
Essaye avec :
ActiveX1>>CapRawImageToHandle(monimage,355,390,monhdc,&monhandle)

Et ensuite tu devrais avoir une valeur pour le handle qui te serviras
probalement pour la suite...

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
yedaye
Merci d'avoir répondu si promptement.
J'ai fais ce que tu as dit mais j'ai toujours la même erreur.

idsensor est une chaîne
moncontext, monhdc,monhandle sont des entiers
monimage est un Variant
ActiveX1>>CapInitialize()
ActiveX1>>Initialize()
ActiveX1>>CreateContext(moncontext)
ActiveXEvénement("montest",ActiveX1,"SensorPlug")
ActiveX1>>CapStartCapture(idsensor)
monhdcÝébutDessin(Image1)
//monhandle=Handle(Image1)
ActiveX1>>CapRawImageToHandle(monimage,355,390,monhdc,&monhandle)
// Affichage de la valeur du handle
Info(monhandle)

j'utilise une version trial du fingerprint SDK de griaule de 90 jours
Je ne sais pas si elle a des limites, ils n'en n'ont pas parlé dans
les docs. les fonctions d'initialisations me renvoient bien le code de
succès mais le lecteur ne s'allume pas. Quand j'essaie avec les
applications exemples venues avec l'SDK, pas de problème. Est-ce moi
qui initialise mal, ou d'où peut venir le problème?

Merci
Avatar
Romain PETIT
a formulé la demande :
Est-ce moi
qui initialise mal, ou d'où peut venir le problème?



http://www.griaulebiometrics.com/page/en-us/manual/fingerprint-sdk/programming-reference-guide/activex/caprawimagetohandle

En VB :
Function CapRawImageToHandle (ByRef RawImage As Object, ByVal width As
Integer, ByVal height As Integer, ByVal hdc As Integer, ByRef handler
As stdole.IPictureDisp) As Integer

Donc tu vois que "handler" est un type de données définie en amont...

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
yedaye
oui, j'avais vu sa et ce qui me dérange beaucoup c'est l'équivalence
vb <--> windev
le type IPictureDisp par exemple, je ne sais pas à quoi il correspond
en windev. j'ai l'impression que c'est un type OLE mais comment le
définir pour qu'il fonctionne avec mon champ image "image1" par
exemple.
j'ai essayé l'objet automation dynamique mais sans succès.
Merci beaucoup Romain pour l'attention que tu portes au sujet. J'avais
aussi quelques doutes sur le paramètre précédent (HDC) j'espère que je
l'ai bien défini ?
Avatar
Pascal ROY
a écrit :
Salut
Je développe une application de reconnaissance par empreinte digital
avec windev 10.
J'ai acheté le Microsoft fingerprint reader et j'ai le fingerprint
SDK de Griaule.

Mon problème est le suivant .

la fonction CapRawImageToHandle est définie dans le SDK avec les
paramètres suivants:

Returns a picture display handle (IPictureDisp) to the supplied raw
grayscale fingerprint image.

Return On success, GR_OK is returned.
On failure, the appropriate error code is returned.

Parameters
[in] rawImage A raw grayscale fingerprint image.

[in] width Fingerprint image width in pixels.

[in] height Fingerprint image height in pixels.

[in] hdc The device context handle (HDC) in which the picture will be
created.

[out] handle The fingerprint picture display handle (IPictureDisp).

Mon code windev est le suivant :

idsensor est une chaîne
moncontext, monhdc, monhandle sont des entiers
monimage est un Variant
ActiveX1>>CapInitialize()
ActiveX1>>Initialize()
ActiveX1>>CreateContext(moncontext)
ActiveXEvénement("montest",ActiveX1,"SensorPlug")
ActiveX1>>CapStartCapture(idsensor)
monhdcÝébutDessin(Image1)
monhandle=Handle(Image1)
ActiveX1>>CapRawImageToHandle(monimage,355,390,monhdc,monhandle)
ActiveX1>>StopCapture(idsensor)

quand je teste, il me met l'erreur suivante :

" En tentant d'invoquer la méthode <CapRawImageToHandle>, l'objet
Automation/ActiveX a renvoyé l'erreur suivante : 'Erreur 80020005,
Type incorrect pour le paramètre 5' "

Quelqu'un a une idée?

Merci d'avance


Bonjour,
Je ne connais pas du tout le "truc" mais
d'apres ce que tu nous donnes comme info,
je dirais que le Handle de sortie doit correspondre
à un handle valide. Par exemple celui d'un champ image.



--
Pascal ROY
(Service Informatique - SODALEC)
Avatar
yedaye
Bonjour
Moi même c'est ce que je pensais c'est pour sa que j'ai mis ces deux
codes
monhandle=Handle(Image1)
//image1 étant le champ image
ActiveX1>>CapRawImageToHandle(monimage,355,390,monhdc,monhandle)

ou comme c'est un paramètre de sorti, je dois récupérer la valeur de
"monhandle" et l'affecter à un champ image?
Avatar
Romain PETIT
a formulé la demande :

le type IPictureDisp par exemple, je ne sais pas à quoi il correspond
en windev. j'ai l'impression que c'est un type OLE mais comment le
définir pour qu'il fonctionne avec mon champ image "image1" par
exemple.



La définition du IPictureDisp est ici :

http://msdn.microsoft.com/en-us/library/ms680762(VS.85).aspx
Tu dois donc utiliser une structure correspondante.

j'ai essayé l'objet automation dynamique mais sans succès.
Merci beaucoup Romain pour l'attention que tu portes au sujet. J'avais
aussi quelques doutes sur le paramètre précédent (HDC) j'espère que je
l'ai bien défini ?



En théorie, oui...
Dans la pratique, je crois avoir eu des souci avec l'hDC récupéré par
la fonction dDébutDessin pour l'utiliser ensuite avec des API (mais
bon, je suis toutjours en 7.5...)
Sinon, il faudra utiliser l'API GetWindowDC (si tu utiliser l'Hdc de la
fenetre) ou GetDC si tu utilises le champ.
http://msdn.microsoft.com/en-us/library/ms534830(VS.85).aspx
http://msdn.microsoft.com/en-us/library/ms533241(VS.85).aspx

(dans l'exemple VB6, c'est le hDC de la fenetre qui est utilisé)
Bon courage.

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
yedaye
Merci Romain pour tes conseils, ils m'ont été d'un grand secours.
j'ai récupéré l'HDC avec l'API windows comme tu me l'a dit et sa
marche bien. Mon problème maintenant est la récupération de l'image.
Quand je lance le test, il me dit qu'une variable de type incorrecte a
été passé. je suis entrain de faire les modifications et j'espère qu e
j'aurai gain de cause. En VB, c'est un type RawImage, j'ai lu dans un
forum qu'il correspond à un tableau de (largeur d'image) par (hauteur
d'image) de entiers sans signe sur 1 octet. j'ai essayé mais toujours
la même chose.
Selon vous, rawimage peut être sous quel forme en windev ?

Merci
Avatar
Romain PETIT
a écrit :

Selon vous, rawimage peut être sous quel forme en windev ?



Tu devrais télécharger Visual Studio Express
http://www.microsoft.com/express/vb/default.aspx et charger le projet
exemple en C#...

En VB6, on trouve :
' Raw image data type.
Public Type rawImage
' Image data.
img As Variant
' Image width.
width As Long
' Image height.
height As Long
' Image resolution.
res As Long
End Type

A+

--
Romain PETIT
http://cerbermail.com/?O16kfXOFcq
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
yedaye
j'ai lancé le téléchargement mais si je dois recommencer tous mon
développement en VB, je serai en retard dans mes échéances. est-ce
qu'il y a possibilité de faire communiquer windev et un programme fait
en VB ? Comme cela, je pourrai faire la partie de communication avec
le lecteur en VB et les autres en windev.
1 2 3 4 5