1. 检测当前设备是否安装了Flash插件
/******************************
* 检查设备是否安装Flash插件 *
* 定义函数块,用于检测设备注册表是否存在 *
******************************/
Function IsFlashInstalled
Push $R1
ClearErrors
; 通过注册表中的SOFTWARE\Macromedia\FlashPlayerPepper目录,查找UninstallerPath的键是否存在
ReadRegStr $R1 HKLM "SOFTWARE\Macromedia\FlashPlayerPepper" "UninstallerPath"
; 如果报错,说明不存在,给系统变量赋值 1
IfErrors lbl_na
StrCpy $R1 1
Goto lbl_end
; 如果存在就给系统变量赋值0
lbl_na:
StrCpy $R1 0
lbl_end:
Exch $R1
FunctionEnd
此处检测的为:Adobe Flash Player PPAPPI 谷歌浏览器版
如需检测 IE 或 火狐 浏览器,请按照如下信息修改:
谷歌浏览器:“SOFTWARE\Macromedia\FlashPlayerPepper” "UninstallerPath"
IE浏览器:“SOFTWARE\Macromedia\FlashPlayerActiveX” “PlayerPath”
火狐浏览器:“SOFTWARE\Macromedia\FlashPlayerPlugin” “PlayerPath”
2. 调用检测函数进行判定
/***********************************
* 脚本初始化函数
***********************************/
Function .onInit
Call IsFlashInstalled
Pop $R1
; 判定设备中是否存在Flash插件
${If} $R1 == 0
MessageBox MB_OKCANCEL|MB_ICONSTOP "系统安装需要以下插件:$\r$\n$\r$\n Adobe Flash Player PPAPI 29+ $\r$\n$\r$\n点击【确定】立即安装,点击【取消】结束安装。" IDYES Install IDCANCEL Exit
; 当点击确定按钮,执行该部分
Install:
/*********** 此处可以添加安装部分代码 ***********/
; 点击取消按钮,执行该部分
Exit:
quit
${EndIf}
; 其他部分代码
FunctionEnd
在初始化函数中,利用Call指令调用IsFlashInstalled检测函数,判定是否安装指定的插件
本方式不仅可以判定 Flash 插件,还可以根据自己的需求,确定指定程序或插件的注册表状态值,用于程序判定,从而实现检测效果。