API GetDeviceUniqueID à la place de SysNumSérie() (signature nécessaire)
Stagiaire WDF
Inscrit:
14/10/2005 19:33
Post(s): 13
C'est avec un grand désagrément après avoir fait la mise à jour pour WinDev Mobile 11 que j'ai vu que "SysNumSérie()" (entre autres) nécessitait des exécutables et des dll signées pour fonctionner (ce n'était pas indiqué lors de la présentation et envois des pubs et c'est très ennuyeux pour le déboggage et cher).
J'utilise donc en remplacement la nouvelle API de Windows Mobile5 "GetDeviceUniqueID" pour fournir un numéro unique par device.
Mais cela ne fonctionne pas (voir code).
Voici des liens en C et VB pour comprendre l'API:
C'est une Api qui devrait aider bien des développeurs à protéger leurs applis et les limiter à un Pocket PC par licence.
http://msdn2.microsoft.com/en-us/library/ms893522.aspx
http://www.peterfoot.net/GetDeviceUniqueIDForVB.aspx
http://blogs.msdn.com/windowsmobile/archive/2006/01/09/510997.aspx
*************************
Code:

bufVarIn est un Buffer
bufVarIn="@^!MyAppName!^@"

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

Result est un entier

Result = API("coredll.dll","GetDeviceUniqueID",bufVarIn,Taille(bufVarIn),1,bufVarOut,VarOut)

Info(Result) //renvoie toujours le même code quelquesoit "bufVarIn"
Info(bufVarOut) // ne renvoie rien
Info(bufVarOut[[1 A 9]]) // ne renvoie rien
**********************
Si une âme charitable a une idée de l'erreur que je commets dans ce code
(Le service technique PC Soft m'a envoyé bouler ..., c'est sur, il n'ont pas à documenter des API Microsoft, mais bon SysNumSérie() est une des raisons qui m'ont fait passer à Windev Mobile 11.

Merci.

Contribution le : 08/01/2007 20:46
Créer un fichier PDF de la contribution Imprimer


Re: API GetDeviceUniqueID à la place de SysNumSérie() (signature nécessaire)

Inscrit:
19/11/2002 12:20
Post(s): 390
Quelques questions, j'ai vu là:
http://blogs.msdn.com/windowsmobile/archive/2006/01/09/510997.aspx
Qu'en fait il s'agissait de tableau de byte (1 byte = 1 octet) et qu'en fait un élément du tableau correspondait à un caractère du nom de l'application.
Or le buffer intègre un caractère nul (traitement pour l'unicode) ce qui double la taille du tableau, donc est ce que ça correspond vraiment?

Vous avez essyé avec un tableau "classique" plutôt qu'avec les buffer?


Sinon, j'ai vu qu'en fait le device "unique" dépendait en fait des constructeurs / modèles et que le code retournait parfois exactement la même valeur entre certains modèles... Bref ne vous fiez pas à ce que retourne ce code de toute façon...

Contribution le : 09/01/2007 13:42
Créer un fichier PDF de la contribution Imprimer


Re: API GetDeviceUniqueID à la place de SysNumSérie() (signature nécessaire)
Stagiaire WDF
Inscrit:
14/10/2005 19:33
Post(s): 13
Merci Imame pour la réponse,
J'ai essayé avec un tableau de caractères (2 octets pour chaque sur le pocket PC), avec un tableau d'entiers sur un octet, mais l'appel de la dll fait planter le prog me renvoyant une erreur à chaque fois (mauvais paramètres).
J'ai essayé en utilisant les buffers, et en variant la taille déclarée, ça ne plante pas mais la dll renvoie un code d'erreur toujours identique.
La fameuse dll "CPUDLL.DLL" ne fonctionne pas avec un smartphone, cette nouvelle instruction "GetDeviceUniqueID" pourrait être une solution pour nous.

Contribution le : 10/01/2007 10:54
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2