legend Posted April 4, 2013 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
legend Posted April 4, 2013 Author 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)
legend Posted April 4, 2013 Author 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)
legend Posted April 4, 2013 Author 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
guinness Posted April 5, 2013 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
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