سؤال

أريد توليد سلاسل GUID في VBScript. أعلم أنه لا توجد وظيفة مدمجة في VBScript لتوليد واحد. لا أريد استخدام GUIDs التي تم إنشاؤها عشوائيا. ربما يوجد كائن ActiveX الذي يمكن إنشاؤه باستخدام CreateObject () من المؤكد أنه من المؤكد أن يتم تثبيت إصدارات Windows (أحدث) التي يمكن أن تولد GUID؟

هل كانت مفيدة؟

المحلول

كيف يمكنني إنشاء GUID باستخدام برنامج نصي؟ (في: مهلا، جي البرمجة النصية! بلوق) يقول هذا:

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

ومع ذلك، لاحظ أن SCRIPTLET.TYPELIB.GUID إرجاع سلسلة ذات شهرين، والتي يمكن أن تسبب بعض الأشياء تجاهل كل شيء بعد 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

يمكنك Gen Random Guid عن طريق هذا الكائن => "Scriptlet.typelib"

رابط المساعدة => مع ... النهاية

هنا طريقي =

With CreateObject("Scriptlet.TypeLib")
'' For Del This = {}
 WSH.Echo mid(.Guid ,2, 36)
 WSH.Echo (.Guid)
End With
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top