Bueno e comenzado con un proyecto en el cual ocupo el HARDWARE ID ya que este es mas dificil de cambiar, ya que segun se este cada PC tiene uno diferente jeje, lo que pasa esque el programa que estoy haciendo no deceo que nadie mas lo utilice por lo cual coloque comprobacion de UserID y Password dentro de el pero para mayor seguridad deceo que este nopueda ser usado en una computadora diferente al HWID que yo coloque, Bueno soy nuevo con respecto a manejar el HWID por eso no tengo mucha idea sobre el, por lo cual vengo a ver si alguien podria darme alguna ayuda sobre como obtenerlo en VB.NET, por ahora estoy usando este codigo aunque no estoy seguro si me serviria por completo por lo cual les pregunto jeje ^^

Bueno sin mas que decir aqui les dejo el codigo:

Código: Seleccionar todo

Module HWID
    Dim reg As Object, Pid As Object, GUID As Object
    Dim LENGUID As Long, LENPID As Long, TempS As String
    Dim x As Long, SPID As String, SGUID As String, HWID As String
    Const regPID = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId"
    Const regGUID = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MachineGuid"

    Public Function CreateID() As String
        On Error Resume Next

        reg = CreateObject("wscript.shell")
        Pid = Replace(reg.regread(regPID), "-", "")
        GUID = Replace(reg.regread(regGUID), "-", "")

        LENPID = Len(Pid)
        LENGUID = Len(GUID)

        For x = 1 To LENPID
            TempS = Hex((Asc(Mid$(Pid, x, 1)) Xor 23) Xor 14)
            SPID = SPID & TempS
        Next x
        SPID = StrReverse(SPID)

        For x = 1 To LENGUID
            TempS = Hex((Asc(Mid$(GUID, x, 1)) Xor 23) Xor 14)
            SGUID = SGUID & TempS
        Next x
        SGUID = StrReverse(SGUID)
        HWID = StrReverse(SGUID & SPID)
        CreateID = HWID
    End Function


End Module
Como podran ver esta en un modulo jeje ^^
Espero y alguien pueda ayudarme, ya que dudo que esto me de el HWID, sino que creo que me esta dando otra cosa jeje, espero y me puedan ayudar jeje ^^

Desde ya Gracias por su tiempo

Edit: Bueno Ya que no encontre la solucion pues decidi usar varios componentes de una computadora, que son la MAC,MotherBoard,VolumeSerial Y ProcessorId estos codigos los encontre por ahi pero bueno se los traigo por si necesitan alguno de ellos =P

Código: Seleccionar todo

Imports System
Imports System.Management


Public Class Form1
    Private Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, ByVal lpVolumeSerialNumber As Long, ByVal lpMaximumComponentLength As Long, ByVal lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
    Dim reg As Object, Pid As Object, GUID As Object
    Dim LENGUID As Long, LENPID As Long, TempS As String
    Dim x As Long, SPID As String, SGUID As String, HWID As String
    Const regPID = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductId"
    Const regGUID = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography\MachineGuid"

    Public Function CreateID() As String
        On Error Resume Next

        reg = CreateObject("wscript.shell")
        Pid = Replace(reg.regread(regPID), "-", "")
        GUID = Replace(reg.regread(regGUID), "-", "")

        LENPID = Len(Pid)
        LENGUID = Len(GUID)

        For x = 1 To LENPID
            TempS = Hex((Asc(Mid$(Pid, x, 1)) Xor 23) Xor 14)
            SPID = SPID & TempS
        Next x
        SPID = StrReverse(SPID)

        For x = 1 To LENGUID
            TempS = Hex((Asc(Mid$(GUID, x, 1)) Xor 23) Xor 14)
            SGUID = SGUID & TempS
        Next x
        SGUID = StrReverse(SGUID)
        HWID = StrReverse(SGUID & SPID)
        CreateID = HWID
    End Function

    Friend Function GetProcessorId() As String
        Dim strProcessorId As String = String.Empty
        Dim query As New SelectQuery("Win32_processor")
        Dim search As New ManagementObjectSearcher(query)
        Dim info As ManagementObject

        For Each info In search.Get()
            strProcessorId = info("processorId").ToString()
        Next
        Return strProcessorId

    End Function

    Friend Function GetMACAddress() As String

        Dim mc As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
        Dim moc As ManagementObjectCollection = mc.GetInstances()
        Dim MACAddress As String = String.Empty
        For Each mo As ManagementObject In moc

            If (MACAddress.Equals(String.Empty)) Then
                If CBool(mo("IPEnabled")) Then MACAddress = mo("MacAddress").ToString()

                mo.Dispose()
            End If
            MACAddress = MACAddress.Replace(":", String.Empty)

        Next
        Return MACAddress
    End Function

    Friend Function GetVolumeSerial(Optional ByVal strDriveLetter As String = "C") As String

        Dim disk As ManagementObject = New ManagementObject(String.Format("win32_logicaldisk.deviceid=""{0}:""", strDriveLetter))
        disk.Get()
        Return disk("VolumeSerialNumber").ToString()
    End Function

    Friend Function GetMotherBoardID() As String

        Dim strMotherBoardID As String = String.Empty
        Dim query As New SelectQuery("Win32_BaseBoard")
        Dim search As New ManagementObjectSearcher(query)
        Dim info As ManagementObject
        For Each info In search.Get()

            strMotherBoardID = info("SerialNumber").ToString()

        Next
        Return strMotherBoardID

    End Function


End Class
Deven agregar la Referencia System.Management por si les da error, Bueno si decean pueden cerrar el tema =P
Responder

Volver a “VB/.NET”