What we’ll do instead is get to the heart of the plug-in detection. It is done by trying to create an instance of each activeX control. If it works, the value true is passed back to the variable; if not, then the value false is passed back:
checkForAcroRead7 = (IsObject(CreateObject("acroPDF.PDF.1")))
checkForAcroRead6 = (IsObject(CreateObject("PDF.PdfCtrl.6")))
checkForAcroRead5 = (IsObject(CreateObject("PDF.PdfCtrl.5")))
checkForAcroRead4 = (IsObject(CreateObject("PDF.PdfCtrl.4")))
checkForAcroRead3 = (IsObject(CreateObject("PDF.PdfCtrl.1")))
checkForFlash7 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7")))
checkforFlash6 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6")))
checkforFlash5 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5")))
checkForFlash4 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4")))
checkForFlash3 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3")))
checkForQT6 = (IsObject(CreateObject("QuickTime.QuickTime.4")))
checkForQT5 = (IsObject(CreateObject("QuickTimeCheckObject.QuickTimeCheck.1")))
checkForReal = (IsObject(CreateObject("rmocx.RealPlayer G2 Control.1")))
checkForSW10 = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.1")))
checkForSW9 = (IsObject(CreateObject("SWCt1.SWCt1.9")))
checkForSW8 = (IsObject(CreateObject("SWCt1.SWCt1.8")))
checkForSW7 = (IsObject(CreateObject("SWCt1.SWCt1.7")))
checkForSW6 = (IsObject(CreateObject("SWCt1.SWCt1.1")))
checkForWMP = (IsObject(CreateObject("MediaPlayer.MediaPlayer.1")))
Where possible, we are checking for versions as well as whether the plug-in exists at all.