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
Ir a la versión completa