CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 [Pregunta]Obtener HWID

(1/1)

.mokk.:
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: Text --- 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_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProductId"    Const regGUID = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyMachineGuid"     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: Text ---Imports SystemImports 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_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProductId"    Const regGUID = "HKEY_LOCAL_MACHINESOFTWAREMicrosoftCryptographyMachineGuid"     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

Navegación

[0] Índice de Mensajes

Ir a la versión completa