Comment générer un GUID en VBScript?

je veux générer des chaînes de GUID dans VBScript. Je sais qu'il n'y a pas de fonction intégrée dans VBScript pour en générer une. Je ne veux pas utiliser des GUIDs générés au hasard. Peut-être qu'il y a un objet ActiveX qui peut être créé en utilisant CreateObject() qui est sûr d'être installé sur les versions (plus récentes) de Windows qui peuvent générer un GUID?

28
demandé sur vividos 2009-06-09 12:02:40

4 réponses

comment créer une interface graphique en utilisant un Script? (dans: Hey, le scripteur! Blog) dit ceci:

Set TypeLib = CreateObject("Scriptlet.TypeLib")
Wscript.Echo TypeLib.Guid

Toutefois, notez que le Scriptlet.La bibliothèque de types.Guid renvoie une chaîne à fin nulle, qui peut causer certaines choses à ignorer tout après le GUID . Pour corriger cela, vous pourriez avoir besoin d'utiliser:

Set TypeLib = CreateObject("Scriptlet.TypeLib")
myGuid = TypeLib.Guid
myGuid = Left(myGuid, Len(myGuid)-2)
Wscript.Echo myGuid
29
répondu Roger Lipscombe 2017-05-23 10:31:07
Function CreateGUID
  Dim TypeLib
  Set TypeLib = CreateObject("Scriptlet.TypeLib")
  CreateGUID = Mid(TypeLib.Guid, 2, 36)
End Function

cette fonction retournera un GUID simple, par exemple, 47BC69BD-06A5-4617-B730-B644DBCD40A9 .

si vous voulez un GUID dans un format de Registre, par exemple, {47BC69BD-06A5-4617-B730-B644DBCD40A9} , changez la dernière ligne de la fonction en

CreateGUID = Left(TypeLib.Guid, 38)
42
répondu Helen 2010-10-08 14:15:36
' Returns a unique Guid on every call. Removes any cruft.
Function CreateGuid()
    CreateGuid = Left(CreateObject("Scriptlet.TypeLib").Guid,38)
End Function
8
répondu BSalita 2012-09-29 00:00:43
Set tlib = Server.CreateObject("Scriptlet.TypeLib")
strGuid = tlib.Guid
2
répondu BobbyShaftoe 2009-06-09 08:07:35