|
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
|
|
|
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
|
|
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.