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:
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
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_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