#include #include #include #include #include #include #include #include #include #Include #include #include #include #include #Region Decodare Product Key Func DecodeProductKey($BinaryDPID) Local $bKey[15] Local $sKey[29] Local $Digits[24] Local $Value = 0 Local $hi = 0 local $n = 0 Local $i = 0 Local $dlen = 29 Local $slen = 15 Global $Result $Digits = StringSplit("BCDFGHJKMPQRTVWXY2346789","") $binaryDPID = stringmid($binaryDPID,105,30) For $i = 1 to 29 step 2 $bKey[int($i / 2)] = dec(stringmid($binaryDPID,$i,2)) Next For $i = $dlen -1 To 0 Step -1 If Mod(($i + 1), 6) = 0 Then $sKey[$i] = "-" Else $hi = 0 For $n = $slen -1 To 0 Step -1 $Value = Bitor(bitshift($hi ,- 8) , $bKey[$n]) $bKey[$n] = int($Value / 24) $hi = mod($Value , 24) Next $sKey[$i] = $Digits[$hi +1] EndIf Next For $i = 0 To 28 $Result = $Result & $sKey[$i] Next Return $Result EndFunc #EndRegion #Region Variables Global $aDiskDrive[1][3] ; array for hard drive data Global $aProcessorInfo[5][42] ;array for processor data Global $aVideoInfo[10][57] ;array for video card data Global $aRAM=MemGetStats() ;RAM data Global $aMACInfo[1][34] ;array for MAC adress data Global $Bin ;coded product key Global $ProdKey ;decoded product key Global $HDModel ;hard disk model Global $HDSize ;hard disk size Global $PNum ;number of processors Global $PName ;processor name Global $PCores ;number of processor cores Global $VNum ;number of video cards Global $VName[5] ;video card name Global $VProcessor[5] ;video card processor Global $RAM ;RAM Memory #EndRegion #Region Arrays _DriveGetDiskDrive($aDiskDrive) ;get drivers info into an array _ComputerGetProcessors($aProcessorInfo) ;get processor info into an array _ComputerGetVideoCards($aVideoInfo) ;get video card specs into an array _ComputerGetNetworkCards($aMACInfo) ;get Mac adress #EndRegion #Region Variables/Init $osv = @OSVersion ;OS version $osBit = @OSArch ;OS type x64/x84 $aRAM=MemGetStats() ;get ram in kilobytes $Bin = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion","DigitalProductID") ;get coded product key $ProdKey=DecodeProductKey($Bin) ;decoded product key $HDModel= $aDiskDrive[1][25] $HDSize= Round($aDiskDrive[1][39]/1000000000,0) $PNum= $aProcessorInfo[0][0] $PName=$aProcessorInfo[1][0] ;indice i in loc de 1 de modificat $PCores=EnvGet("NUMBER_OF_PROCESSORS") $VNum=$aVideoInfo[0][0] $RAM=Round($aRAM[1]/1000000,2) $objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}") $netAdapterSet = $objWMIService.ExecQuery("SELECT * from Win32_NetworkAdapterConfiguration", "WQL", 0x30) For $i=1 To $VNum Step 1 $VName[$i]=$aVideoInfo[$i][0] Next For $i=1 To $VNum Step 1 $VProcessor[$i]=$aVideoInfo[$i][56] Next #EndRegion ;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~GIU CREATE~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $GUI=GUICreate("PCInfo", 425, 500) GUICtrlCreateLabel("Computer specifications",150,10) GUICtrlCreateButton("Collect Data",100,450, 100) GUICtrlCreateButton("Export to DB",200, 450,100) $LIST=GUICtrlCreateListView("Item|Data",0,30,425,400) _GUICtrlListView_Scroll($LIST,0,400) _GUIScrollBars_EnableScrollBar($LIST) _GUIScrollBars_ShowScrollBar($LIST, $SB_VERT ) _GUIScrollBars_ShowScrollBar($LIST, $SB_HORZ,False ) _GUICtrlListView_SetColumnWidth($LIST, 0, 140) _GUICtrlListView_SetColumnWidth($LIST, 1, 260) GUICtrlCreateListViewItem("Windows Version|" & $osv & " " & $osBit, $LIST) ;GUICtrlCreateListViewItem("Windows Arhitecture|" & $osBit, $LIST) GUICtrlCreateListViewItem("Product Key|" & $ProdKey, $LIST) GUICtrlCreateListViewItem("Hard Disk Model|" & $HDModel & " " & $HDSize & " GB", $LIST) For $i=1 To $PNum Step 1 GUICtrlCreateListViewItem("Processor Name|" &$PName, $LIST) Next For $i=1 To $VNum Step 1 GUICtrlCreateListViewItem("Video Card Name|" & $VName[$i], $LIST) GUICtrlCreateListViewItem("Video Card Processor|" & $VProcessor[$i], $LIST) Next GUICtrlCreateListViewItem("RAM Memory|" & $RAM & " GB", $LIST) For $netAdapter in $netAdapterSet If Not ($netAdapter.MACAddress=Null) And StringInStr($netAdapter.Caption,"bluetooth")=0 And StringInStr($netAdapter.Caption,"microsoft")=0 Then GUICtrlCreateListViewItem("MAC Address|" & $netAdapter.MACAddress, $LIST) GUICtrlCreateListViewItem("Device Name|" & $netAdapter.Caption, $LIST) If $netAdapter.IPAddress[0] Then GUICtrlCreateListViewItem("IP Adress|" & $netAdapter.IPAddress[0], $LIST) EndIf EndIf Next GUISetState(@SW_SHOW) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd