PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → Cherche Testeurs
Cherche Testeurs
Débuté par Yves, 05 fév. 2007 16:35 - 7 réponses
Posté le 05 février 2007 - 16:35
Bonjour, suite à la nécessité de pouvoir identifier de manière unique chaque pocket ou smartphone, j'ai mis en place en windev mobile la fameuse fonction "GetDeviceUniqueID" issue de "coredll.dll".
Cette fonction ne nécessite pas d'être signée (celle fournie avec Windev Mobile 11 nécessite que les exe et dll soient signés) et fonctionne uniquement sous Windows Mobile 5.
Cependant sous certains forums, il est dit que cette fonction issue de windows mobile 5 ne fonctionne pas correctement et renvoie sur certaines séries, toujours le même code, quelquesoit l'exemplaire testé.

Afin de vérifier si cette fonction fonctionne ou non, il faudrait avoir le même modèle de Pocket ou smartphone en plusieurs exemplaires, ce que je n'ai pas.

Si certains d'entre vous pouvaient faire tourner cette fonction (exactement la même, c'est important, car en fonction du contenu de BufVarIn, le résultat change) et indiquer le résultat obtenu, nous pourrions savoir si cette fonction est fiable ou non et l'utiliser en lieu et place de celle de windev mobile 11 "SysNumSerie".

Merci de votre participation

--------------------------------------------
Procédure à utiliser (testé sous Windev Mobile 10)
-------------------------------------------
PROCEDURE GetDeviceID()

//sContenuChaine est une chaine
BufVarIn est un tableau fixe de 15 entiers sur 1 octet

nIcompt est entier
POUR nIcompt = 1 A 15
BufVarIn[nIcompt]=nIcompt
FIN

bufVarOut est un Buffer sur 5
VarOut est un entier sans signe sur 4 octets
VarOut = Taille(bufVarOut)

API("coredll.dll","GetDeviceUniqueID",&BufVarIn,15,1,&bufVarOut,&VarOut)
//sContenuChaine = ChaîneRécupère(&bufVarOut, crAdresseASCIIZ)


nSCar est un entier sans signe sur 1 octet
sVarResult est une chaîne


POUR nIcompt=1 A 5
nSCar = Droite(Gauche(bufVarOut,nIcompt),1)
sVarResult += NumériqueVersChaîne(nSCar,"X")
FIN

RENVOYER sVarResult

-------------------------------------------
Voici les résultats obtenus sur mes machines mobile 5
------------------------------
Pocket PC "HP iPAQ rx1950 version anglaise": 8CF4886E3E
Smartphone "QTEK 8500 version française": 9E6F9AC7F
Posté le 05 février 2007 - 22:24
Pocket PC "HP iPAQ rx1950 version anglaise": 8CF4886E3E
Smartphone "QTEK 8500 version française": 9E6F9AC7F

Smartphone "MIO A701 version française WM5 ": F87FDF70AA
Posté le 06 février 2007 - 11:57
smartphone C600 french : B9D01DF88
pocket phone ETEN G500 french : 573EBF1EEC

merci pour le bout de code !
stef
Posté le 16 février 2007 - 07:31
si sa marche vraiment c formidable, j'aurais presque envie de t'embrasser.
passons .

bravo tout de meme


IPAQ 6915: 2B7C383379
EN attendant le retour du HTC TN/TY
Posté le 16 février 2007 - 09:32
Bonjour

sur Qtek 2020i, avec windows mobile 2003

programme avec windev mobile 10
-> j'ai l'erreur suivante, dans la procédure "GetDeviceID" : La
fonction 'GetDeviceUniqueID' n'a pas été trouvée dans la DLL
coredll.dll

Yannick
Posté le 18 février 2007 - 23:49
Effectivement, cette procédure n'existe que dans Windows Mobile 5.

Cordialement
Posté le 22 mars 2007 - 23:46
Salut Yves

Il semble avoir un probleme dans ton code car dans la doc de microsoft, c'est clairement indiquer ceci au niveau de ta variable bufVarOut: "This buffer should be at least equal to GETDEVICEUNIQUEID_VI_OUTPUT (20 bytes). "


Voici ce qui se produit avec ton code : "If the provided buffer is smaller than the complete hash, the hash will be truncated "


Tu peux regarder la doc a cette adresse [url]http://msdn2.microsoft.com/en-us/library/ms893522.aspx[/url]

Nic
Posté le 14 avril 2008 - 22:10
(réponse très tardive, mais Windevmobile 12 n'apporte toujours pas de solution "clef en main" pour obtenir le numéro de série d'un smartphone sans être obligé d'avoir de dll signée)

Il n'est guère important que le Hash code soit tronqué ou non, du moment qu'il s'agit d'un code relativement unique par smartphone et toujours identique sur le même smartphone)

Je cherche toujours des testeurs aimables qui pourraient tester ce bout de code (particulièrement sur les téléphones de type HTC (touch, dual, cruise...).

Merci