GUID文字列をVBScriptで生成したいのですが、VBScriptにはそれを生成するための組み込み関数がないことを知っています。ランダムに生成されたGUIDを使用したくありません。ActiveXがあるかもしれません。 GUIDを生成できるWindowsの(新しい)バージョンに確実にインストールされるCreateObject()を使用して作成できるオブジェクト?
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
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)
' 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
ランダムに生成できますGUIDこのオブジェクト経由=> "Scriptlet.TypeLib"
ヘルプリンク=> With ... End
これが私の方法です=
With CreateObject("Scriptlet.TypeLib")
'' For Del This = {}
WSH.Echo mid(.Guid ,2, 36)
WSH.Echo (.Guid)
End With