empreinte digital avec windev

Le
yedaye
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=dDé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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 5
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Romain PETIT
Le #14506951
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é)
yedaye
Le #14506941
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
Romain PETIT
Le #14506931
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é)
yedaye
Le #14506921
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 ?
Pascal ROY
Le #14506891
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)
yedaye
Le #14506881
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?
Romain PETIT
Le #14506871
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é)
yedaye
Le #14503261
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
Romain PETIT
Le #14503251
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é)
yedaye
Le #14503211
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.
Publicité
Poster une réponse
Anonyme