legend Posted April 4, 2013 Share Posted April 4, 2013 Hi. I'm in the need of a hardware ID generator, that does not change, when the pc is reinstalled, drivegetserial, is not an option, since it is assigned by windows. and the cpu id is not unique. whats your thoughts about this, using cpu + bios version? any better suggestions. I got this for getting the cpu id, however it's not unique. Func _GetHWID($sHWID) $sHWID = 'ExampleID' Local $sData = $sHWID & @CRLF Local $aArray = StringSplit($sData, @CRLF) If @error Then Return SetError(1, 0, 0) EndIf Return _ArraySearch($aArray, $sHWID) > -1 EndFunc ;==>_GetHWID Func _HWID() $cpu = GetProcessorId() $reversehwid = _StringReverse($cpu) Return $reversehwid EndFunc ;==>_HWID Func GetProcessorId() $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2") $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", 0x10 + 0x20) If IsObj($colItems) Then For $objItem In $colItems Local $PROC_ID = $objItem.ProcessorId Next Return $PROC_ID Else Return 0 EndIf EndFunc ;==>GetProcessorId maybe someone knows how I can get the bios version/id, or got better suggestion for a hardware id generator Link to comment Share on other sites More sharing options...
legend Posted April 4, 2013 Author Share Posted April 4, 2013 I this the cpu method, would be good combined with: Dim $bin = _BaseBoard_Properties() $board = $bin Func _BaseBoard_Properties() Local $a_Text = '' Dim $Obj_WMIService = ObjGet('winmgmts:\\' & @ComputerName & '\root\cimv2'); If (IsObj($Obj_WMIService)) And (Not @error) Then Dim $Col_Items = $Obj_WMIService.ExecQuery('Select * from Win32_BaseBoard') Local $Obj_Item For $Obj_Item In $Col_Items $a_Text = $Obj_Item.Product Next Return String($a_Text) Else Return 0 EndIf EndFunc ;==>_BaseBoard_Properties MsgBox(64, 'Info', $bin) Link to comment Share on other sites More sharing options...
legend Posted April 4, 2013 Author Share Posted April 4, 2013 This is what I ended up with: expandcollapse popup#include #include Dim $bin = _BaseBoard_Properties() $board = $bin Func _BaseBoard_Properties() Local $a_Text = '' Dim $Obj_WMIService = ObjGet('winmgmts:\\' & @ComputerName & '\root\cimv2'); If (IsObj($Obj_WMIService)) And (Not @error) Then Dim $Col_Items = $Obj_WMIService.ExecQuery('Select * from Win32_BaseBoard') Local $Obj_Item For $Obj_Item In $Col_Items $a_Text = $Obj_Item.Product Next Return String($a_Text) Else Return 0 EndIf EndFunc ;==>_BaseBoard_Properties Func _GetHWID($sHWID) $sHWID = 'ExampleID' Local $sData = $sHWID & @CRLF Local $aArray = StringSplit($sData, @CRLF) If @error Then Return SetError(1, 0, 0) EndIf Return _ArraySearch($aArray, $sHWID) > -1 EndFunc ;==>_GetHWID Func _HWID() $cpu = GetProcessorId() Return $cpu EndFunc ;==>_HWID Func GetProcessorId() $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2") $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Processor", "WQL", 0x10 + 0x20) If IsObj($colItems) Then For $objItem In $colItems Local $PROC_ID = $objItem.ProcessorId Next Return $PROC_ID Else Return 0 EndIf EndFunc ;==>GetProcessorId $cpu = _HWID() $motherboard = _BaseBoard_Properties() $info = $cpu & $motherboard $reverse = _StringReverse($info) $encrypt = _StringEncrypt(1, $reverse, "123xxx321") MsgBox("","",$encrypt) Link to comment Share on other sites More sharing options...
legend Posted April 4, 2013 Author Share Posted April 4, 2013 (edited) I guess it would only be the same, in case 2 computers had the same cpu and motherboard. sorry for writing with myself ^.^ Edited April 4, 2013 by legend Link to comment Share on other sites More sharing options...
guinness Posted April 5, 2013 Share Posted April 5, 2013 There is a different approach I came up with. You can find it in my signature and doesn't rely on WMI. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now