Connaissez-vous ce genre de clé ? GUID UUID [Résolu]

Signaler
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Salut a tou(te)s

Je suis à la recherche d'un renseignement concernant les 'clés' de ce type :
{472C317F-3BBE-4C80-8DF3-D9A4ACC4AB89}
J'ai un logiciel professionnel qui, lors d'un export, qualifie chaque zone de texte avec ce genre de référence.
J'ai fait l'essai de générer deux champs textes à quelques secondes d'intervalle, mais les clés générées ne se ressemblent pas, donc ils ne sont pas basés sur un TimeStamp quelconque :
      TEXT_GRAPHIC
      {
        NAME="{472C317F-3BBE-4C80-8DF3-D9A4ACC4AB89}"
        ORIGIN= { X=582 Y=101 }
        END= { X=612 Y=131 }
        TEXT="Un"
      }
      TEXT_GRAPHIC
      {
        NAME="{98CEC042-B138-4565-B502-6D02F14BC598}"
        ORIGIN= { X=579 Y=143 }
        END= { X=609 Y=173 }
        TEXT="Deux"
      }

Question : Est-ce que ce genre de champ/clé vous dis quelque chose ?
Si oui :
- Est-ce que ça a un nom particulier, afin que je puisse approfondir ma recherche
- Connaissez-vous les règles de génération de ce genre de clés ?

Je dois essayer de les générer de mon côté, en VBA.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)

6 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Ça ressemble à des clé type GUID (ce que Microsoft appelle aussi CLSID lorsque il s'agit d'identifier des classes ou des activeX), la base de registre en est remplie.

Quant à la façon de la générée, je sais que dotNet comporte des classes pour cela, mais en dehors de dotNet ???

La page wikipédia, si ça peut t'aider --> ici


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
13
Si ça peut t'aider, une pagemontrant comment les générer en VBS et en PHP.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
qu'un même objet puisse être identifié avec une même clé, d'un système à un autre.


Parce que la clé est générée au moment du développement du projet et non pas à l'installation sur le système cible.

Qui a développer des activeX avec VB6 en sais quelque chose. Quand un projet était refermé, puis réouvert pour modification, la compilation, par défaut, générait une nouvelle clé, au lieu de conserver l'actuelle.
Ce qui fait qu'à chaque fois, on créait en réalité un nouvel objet au lieu d'en faire une mise à jour.
Il fallait penser à aller cocher une option dans le projet pour éviter cela, option qui aurait dû être cochée par défaut selon moi.


Ce système de clé existe aussi dans SQLServer sur les colonnes d'identités que l'on peut choisir sous forme de compteur ou de GUID


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Vous êtes des anges.
Il me semblait bien avoir vu ça, mais je n'ai jamais compris comment ces clés pouvaient être générées (par quelles lois) et, difficulté suprême, qu'un même objet puisse être identifié avec une même clé, d'un système à un autre.
Bref, je suis surpris de voir qu'elles soient composées de chiffres aléatoires.
Je m'en vais étudier ça de plus prêt.

Merci
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Oui, voilà, c'est dans SQL Server.
Je me bagarrais avec Access.
Alzheimer me guette !

En fait, ce n'est pas un GUID dont j'ai besoin, mais d'un UUID qui lui, est basé sur certains éléments comme l'adresse MAC de la (d'une) carte réseau et l'heure.
Et, ô chance, il existe une DLL toute faite, rpcrt4.dll, qui génère ce UUID en quelques lignes (API UuidCreate et UuidToStringA)
Voir API-Guide pour les exemples VB6

Elle est pas belle, la vie ?

Merci encore pour vos lumières
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
Codyx, Jack, Codyx :

www.codyx.org/snippet_generer-guid-identifiant-unique_224.aspx

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp