web-dev-qa-db-ja.com

VBScriptでGUIDを生成する方法は?

GUID文字列をVBScriptで生成したいのですが、VBScriptにはそれを生成するための組み込み関数がないことを知っています。ランダムに生成されたGUIDを使用したくありません。ActiveXがあるかもしれません。 GUIDを生成できるWindowsの(新しい)バージョンに確実にインストールされるCreateObject()を使用して作成できるオブジェクト?

29
vividos

GUIDスクリプトを使用してどのように作成できますか?(in:Hey、Scripting Guy!Blog) はこう言います:

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

ただし、Scriptlet.TypeLib.Guidがnullで終了する文字列を返すため、一部のことを GUIDの後のすべてを無視する にする可能性があることに注意してください。これを修正するには、次を使用する必要があります。

Set TypeLib = CreateObject("Scriptlet.TypeLib")
myGuid = TypeLib.Guid
myGuid = Left(myGuid, Len(myGuid)-2)
Wscript.Echo myGuid
33
Roger Lipscombe
Function CreateGUID
  Dim TypeLib
  Set TypeLib = CreateObject("Scriptlet.TypeLib")
  CreateGUID = Mid(TypeLib.Guid, 2, 36)
End Function

この関数は、プレーンなGUIDを返します(例:47BC69BD-06A5-4617-B730-B644DBCD40A9

GUIDをレジストリ形式で必要な場合、たとえば{47BC69BD-06A5-4617-B730-B644DBCD40A9}、関数の最後の行を

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

ランダムに生成できますGUIDこのオブジェクト経由=> "Scriptlet.TypeLib"

ヘルプリンク=> With ... End

これが私の方法です=

With CreateObject("Scriptlet.TypeLib")
'' For Del This = {}
 WSH.Echo mid(.Guid ,2, 36)
 WSH.Echo (.Guid)
End With
0
scientist_7