Pergunta

Eu quero gerar cadeias GUID no VBScript. Eu sei que não há built-in função no VBScript para gerar um. Eu não quero usar GUIDs aleatórios gerados. Talvez haja um objeto ActiveX que podem ser criados usando CreateObject () que é certo para ser instalado em (mais recente) versões do Windows que podem gerar um GUID?

Foi útil?

Solução

Como posso criar um GUID usando um script? (In: Hey, Scripting Guy Blog) diz o seguinte:

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

No entanto, nota que Scriptlet.TypeLib.Guid retorna um string terminada em nulo, o que pode causar algumas coisas para ignorar tudo após o GUID . Para corrigir isso, você pode precisar usar:

Set TypeLib = CreateObject("Scriptlet.TypeLib")
myGuid = TypeLib.Guid
myGuid = Left(myGuid, Len(myGuid)-2)
Wscript.Echo myGuid

Outras dicas

Function CreateGUID
  Dim TypeLib
  Set TypeLib = CreateObject("Scriptlet.TypeLib")
  CreateGUID = Mid(TypeLib.Guid, 2, 36)
End Function

Esta função irá retornar um GUID simples, por exemplo, 47BC69BD-06A5-4617-B730-B644DBCD40A9.

Se você quiser um GUID em um formato de registro, por exemplo, {47BC69BD-06A5-4617-B730-B644DBCD40A9}, altere última linha da função para

CreateGUID = Left(TypeLib.Guid, 38)
' Returns a unique Guid on every call. Removes any cruft.
Function CreateGuid()
    CreateGuid = Left(CreateObject("Scriptlet.TypeLib").Guid,38)
End Function
Set tlib = Server.CreateObject("Scriptlet.TypeLib")
strGuid = tlib.Guid

Você pode Gen GUID aleatório Via Este Object => "Scriptlet.Typelib"

Link de Ajuda => Com ... End

Aqui é a minha maneira =

With CreateObject("Scriptlet.TypeLib")
'' For Del This = {}
 WSH.Echo mid(.Guid ,2, 36)
 WSH.Echo (.Guid)
End With
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top