DOC have made some corrections to the script above, here is it.
Code:
Break On
Dim $SO
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
Dim $DLLCheck
$DLLCheck = GetRegisteredDlls
Function GetRegisteredDlls()
Dim $RootKey,$Index,$KeyName,$Inproc,$DllName,$FileLocation
Dim $CompanyName,$BinFileVersion,$FileDescription,$FileVersion,$Languaje
Dim $Name,$ProductName
$RootKey = "HKEY_CLASSES_ROOT\CLSID\"
$Index = 0
While @ERROR = 0
$KeyName = EnumKey("HKEY_CLASSES_ROOT\CLSID\", $Index)
If KeyExist($RootKey + $KeyName + "InprocServer32")=0
$Inproc=$RootKey + $KeyName + "\InprocServer32"
$DllName = ReadValue($Inproc, "")
If Exist ( $DllName )
$FileLocation=$DllName
$CompanyName=GetFileVersion($DllName,"CompanyName")
$BinFileVersion=GetFileVersion($DllName,"BinFileVersion")
$FileDescription=GetFileVersion($DllName,"FileDescription")
$FileVersion=GetFileVersion($DllName,"FileVersion")
$Languaje=GetFileVersion($DllName,"Language")
$Name=GetFileVersion($DllName,"OriginalFilename")
$ProductName=GetFileVersion($DllName,"ProductName")
? "-----------------------------------------"
? 'File index number: ' + $Index
? 'Path: ' + $DllName
? 'Company: ' + $CompanyName
? 'BinFile version: ' + $BinFileVersion
? 'File version: ' + $FileVersion
? 'File description: ' + $FileDescription
? 'Language: ' + $Languaje
? 'Original name: ' + $Name
? 'Product name: ' + $ProductName
EndIf
EndIf
$Index = $Index + 1
Loop
Exit @ERROR
EndFunction
It is still missing the storage part, due to XML functions not ready I will look fordward in doing it into an MDB.
Thanks DOC.