Okay Silver, Here is some 95% SILVER-PLATTER code
... give this a try. Simply find/locate the names of the applications you want to check for and edit the $Installs array var to include those names exactly as they are in the Registry. This script should then show any of your custom installed applications.
Then add / edit for the rest of what you're looking to do like launching or not launching code based upon the results.
The ArrayEnumKey UDF was written by Sealeopard. This and 490+ other UDFs can easily be searched/found here
USA
http://www.kixhelp.com/udfs/
Finland
http://www.gwspikval.com/jooel/UDF/
Code:
Break On
Dim $SO
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('WrapAtEOL','On')
Dim $HKLMSCIP,$HKLMSCIPDATA,$Entry,$HKLMSCIPAPP,$Installs
$HKLMSCIP='HKLM\SOFTWARE\Classes\Installer\Products'
$HKLMSCIPDATA=ArrayEnumKey($HKLMSCIP)
$Installs='MSI Custom 1','MSI Custom 2','MSI Custom 3'
For Each $Entry In $HKLMSCIPDATA
If $Entry
$HKLMSCIPAPP=ReadValue($HKLMSCIP+'\'+$Entry,'ProductName')
If AScan ($Installs, $HKLMSCIPAPP)>=0
? $HKLMSCIPAPP
EndIf
EndIf
Next
Function ArrayEnumKey($regsubkey)
dim $retcode, $subkeycounter, $currentsubkey, $subkeyarray
if not keyexist($regsubkey)
exit 87
endif
$subkeycounter=0
do
$currentsubkey=enumkey($regsubkey,$subkeycounter)
if not @ERROR
redim preserve $subkeyarray[$subkeycounter]
$subkeyarray[$subkeycounter]=$currentsubkey
$subkeycounter=$subkeycounter+1
endif
until @ERROR
$arrayenumkey=$subkeyarray
exit 0
EndFunction