#include <WinAPIEx.au3>
#include <Array.au3>
$sSubKey = 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall'
$sSearchKey = 'AutoItv3'
$bCheck = False
$hKey = _WinAPI_RegOpenKey($HKEY_LOCAL_MACHINE, $sSubKey)
$aCount = _WinAPI_RegQueryInfoKey($hKey)
For $i = 0 To $aCount[0]
$sTempKey = _WinAPI_RegEnumKey($hKey, $i)
If StringInStr($sTempKey, $sSearchKey) Then
$bCheck = True
_WinAPI_RegCloseKey($hKey)
$hKeySearch = _WinAPI_RegOpenKey($HKEY_LOCAL_MACHINE, $sSubKey & '\' & $sTempKey)
$Count = _WinAPI_RegQueryInfoKey($hKeySearch)
Dim $aKey[$Count[2]][3]
For $j = 0 To $Count[2] - 1
$aKey[$j][0] = _WinAPI_RegEnumValue($hKeySearch, $j)
$aKey[$j][1] = RegRead('HKLM\' & $sSubKey & '\' & $sTempKey, $aKey[$j][0])
$aKey[$j][2] = _RegValueType(@extended)
Next
ExitLoop
EndIf
Next
If $bCheck Then
_WinAPI_RegCloseKey($hKeySearch)
_ArrayDisplay($aKey)
Else
_WinAPI_RegCloseKey($hKey)
MsgBox(0, '', 'NO')
EndIf
Func _RegValueType($sString)
Local $sResume
Switch $sString
Case 0
$sResume = 'REG_NONE'
Case 1
$sResume = 'REG_SZ'
Case 2
$sResume = 'REG_EXPAND_SZ'
Case 3
$sResume = 'REG_BINARY'
Case 4
$sResume = 'REG_DWORD'
Case 5
$sResume = 'REG_DWORD_BIG_ENDIAN'
Case 6
$sResume = 'REG_LINK'
Case 7
$sResume = 'REG_MULTI_SZ'
Case 8
$sResume = 'REG_RESOURCE_LIST'
Case 9
$sResume = 'REG_FULL_RESOURCE_DESCRIPTOR'
Case 10
$sResume = 'REG_RESOURCE_REQUIREMENTS_LIST'
EndSwitch
Return $sResume
EndFunc ;==>_RegType