Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: XcryptOR en 6 Febrero 2009, 15:42 pm



Título: Generador GUID
Publicado por: XcryptOR en 6 Febrero 2009, 15:42 pm
Code Util para utilizar el metodo de inicio ActiveX (ActiveX Startup Method), este code genera un numero unico de la forma: {89B4C1CD-B018-4511-B0A1-5476DBF70820}.
Código
  1. '---------------------------------------------------------------------------------------
  2. ' Module      : mGenGUID
  3. ' Fecha       : 05/02/2009 18:10
  4. ' Autor       : XcryptOR
  5. ' Proposito   : Generar un número de identificación unico
  6. ' Creditos    : Creditos a trilithium, Autor del code original en Delphi
  7. '---------------------------------------------------------------------------------------
  8.  
  9. Option Explicit
  10.  
  11. Private Type GUID
  12.    Data1           As Long
  13.    Data2           As Integer
  14.    Data3           As Integer
  15.    Data4(7)        As Byte
  16. End Type
  17.  
  18. Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
  19. pDest As Any, _
  20. pSource As Any, _
  21. ByVal dwLength As Long)
  22.  
  23. Private Declare Function StringFromCLSID Lib "ole32" ( _
  24. pclsid As GUID, _
  25. lpsz As Long) As Long
  26.  
  27. Private Declare Function CoCreateGuid Lib "OLE32.DLL" (pGuid As GUID) As Long
  28.  
  29. Public Function GetGUID() As String
  30.    Dim udtGUID     As GUID
  31.    If (CoCreateGuid(udtGUID) = 0) Then
  32.        GetGUID = GUIDToStr(udtGUID)
  33.    End If
  34. End Function
  35.  
  36. Private Function GUIDToStr(ID As GUID) As String
  37.    Dim strRet      As String
  38.    Dim ptrSource   As Long
  39.    Dim lngRet      As Long
  40.  
  41.    strRet = Space(38)
  42.    lngRet = StringFromCLSID(ID, ptrSource)
  43.    If lngRet = 0 Then
  44.        CopyMemory ByVal StrPtr(strRet), ByVal ptrSource, 76
  45.        GUIDToStr = strRet
  46.    End If
  47. End Function


Título: Re: Generador GUID
Publicado por: LeandroA en 6 Febrero 2009, 21:23 pm
Esta bueno, felicitaciones