vb+Flex的关于FlashPlayer的检测
2010年11月03日
应该很少见到使用vb+flex这样的方式开发的项目吧,自己就曾经遇过这样的一个项目,其实更好的应该是c++ + flex, vb,c++这些作为Flex的外层,它的工作就是跟系统交互并为Flex提供服务,而这样结合,比起air, 性能应该更好,我不明白air还有什么用武之地,至少我不会再用它了--|||...
vb+flex,在vb中,要使用到ActiveX控件ShockwaveFlash
回过头先说FlashPlyer的两个内核版本:
Adobe Flash Player ActiveX: ie ActiveX控件
Adobe Flash Player plugin: 非ie的插件,例如firefox
Adobe Flash Player ActiveX是再熟悉不过的了,并且是非常的普及的了,几乎所有需要运行swf都会安装它,也只安装了它, vb才能正常使用ShockwaveFlash,因为它会注册该控件。
基于此,vb+flex,如何去检测用户的电脑是否可以正常使用软件(是否安装了Adobe Flash Player ActiveX),我们自然想到了要去检测注册表,而现在的系统有32位和64位的,因此就有了: Dim K As String '首先检测32位的键值 K = GetRegString(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninsta ll\Adobe Flash Player ActiveX", "DisplayVersion") K = Trim(K) If (K = "") Then '再尝试检测64位的键值 K = GetRegString(HKEY_LOCAL_MACHINE, "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVer sion\Uninstall\Adobe Flash Player ActiveX", "DisplayVersion") K = Trim(K) If (K = "") Then Call err.Raise(-1, , "flash cannot found") Else K = GetVersionNum(K) 'GetVersionNum用户获取版本好的Interger数字 End If Else K = GetVersionNum(K) End If ver = CInt(K) If ver ShellExecute 0, "open", "iexplore.exe", "http://www.adobe.com/go/getflashplayer", "", 1 End If 事实上,Adobe把SafeVersions/10.0这个键值改为最新的,当安装时候,检测到比它低的,它就不允许安装,其实也可以将他改低就可以安装了,但是没有必要,直接将它删除了吧,一了百了。
不知是否还有更好的办法....
2010年11月03日
应该很少见到使用vb+flex这样的方式开发的项目吧,自己就曾经遇过这样的一个项目,其实更好的应该是c++ + flex, vb,c++这些作为Flex的外层,它的工作就是跟系统交互并为Flex提供服务,而这样结合,比起air, 性能应该更好,我不明白air还有什么用武之地,至少我不会再用它了--|||...
vb+flex,在vb中,要使用到ActiveX控件ShockwaveFlash
回过头先说FlashPlyer的两个内核版本:
Adobe Flash Player ActiveX: ie ActiveX控件
Adobe Flash Player plugin: 非ie的插件,例如firefox
Adobe Flash Player ActiveX是再熟悉不过的了,并且是非常的普及的了,几乎所有需要运行swf都会安装它,也只安装了它, vb才能正常使用ShockwaveFlash,因为它会注册该控件。
基于此,vb+flex,如何去检测用户的电脑是否可以正常使用软件(是否安装了Adobe Flash Player ActiveX),我们自然想到了要去检测注册表,而现在的系统有32位和64位的,因此就有了: Dim K As String '首先检测32位的键值 K = GetRegString(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninsta ll\Adobe Flash Player ActiveX", "DisplayVersion") K = Trim(K) If (K = "") Then '再尝试检测64位的键值 K = GetRegString(HKEY_LOCAL_MACHINE, "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVer sion\Uninstall\Adobe Flash Player ActiveX", "DisplayVersion") K = Trim(K) If (K = "") Then Call err.Raise(-1, , "flash cannot found") Else K = GetVersionNum(K) 'GetVersionNum用户获取版本好的Interger数字 End If Else K = GetVersionNum(K) End If ver = CInt(K) If ver ShellExecute 0, "open", "iexplore.exe", "http://www.adobe.com/go/getflashplayer", "", 1 End If 事实上,Adobe把SafeVersions/10.0这个键值改为最新的,当安装时候,检测到比它低的,它就不允许安装,其实也可以将他改低就可以安装了,但是没有必要,直接将它删除了吧,一了百了。
不知是否还有更好的办法....