admin管理员组

文章数量:1571364

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 插件,还可以根据自己的需求,确定指定程序或插件的注册表状态值,用于程序判定,从而实现检测效果。

本文标签: 脚本插件NSISAdobePlayer