Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测来自Java的AIR和Flash版本_Java_Flash_Air_Adobe - Fatal编程技术网

检测来自Java的AIR和Flash版本

检测来自Java的AIR和Flash版本,java,flash,air,adobe,Java,Flash,Air,Adobe,我需要从Windows上的Java应用程序中检测已安装的AdobeAIR和Flash版本 一种方法是读取“C:\Program files(x86)\Common files\Adobe AIR\Versions\1.0”文件夹中.exe文件的元数据,但这显然是一个丑陋的解决方案。对于Flash版本,可以尝试读取注册表项HKEY\U LOCAL\U MACHINE\SOFTWARE\Macromedia\FlashPlayerPlugin\/v version,但我不确定名称的*插件部分是否是一

我需要从Windows上的Java应用程序中检测已安装的AdobeAIR和Flash版本

一种方法是读取“C:\Program files(x86)\Common files\Adobe AIR\Versions\1.0”文件夹中.exe文件的元数据,但这显然是一个丑陋的解决方案。对于Flash版本,可以尝试读取注册表项HKEY\U LOCAL\U MACHINE\SOFTWARE\Macromedia\FlashPlayerPlugin\/v version,但我不确定名称的*插件部分是否是一个好的指示器,因为我需要Flash版本,它实际上是由AIR使用的,而不是由浏览器使用的


有什么干净的方法可以做到这一点吗?

我可以想出一个肮脏而丑陋的伎俩(但请不要使用):创建一个套接字(如端口12312),在浏览器中从该端口提供一个网页('index.html')。在其中嵌入一个
swf
,用于检查flash版本,返回结果(通过同一端口)并快速关闭浏览器窗口。你的用户会讨厌你,但它完成了任务:)天哪,这不仅是非常疯狂,而且实际上几乎不可行=)。实际上没有“从浏览器中的那个端口为网页提供服务”这样的事情。为了传播数据,应该从Java启动浏览器,并以某种方式从中提取数据。此外,你不需要插座,只需在互联网上提供页面即可。一句话:不比我描述的丑陋的解决方案好。但感谢你们尝试开箱思考。是的,我缩短了顺序,因为我是在iPad上写的(屏幕上的键盘输入速度很慢)。这是一个突然出现在我脑海中的疯狂想法,我只是半开玩笑地说了出来。更好的主意是:如果您可以从java代码中打开swf文件(不是嵌入到代码中,而是作为一个单独的过程),您可以要求它将flash运行时的版本发送回java代码(您的java代码可以侦听端口88888,flash可以写入该端口)并立即关闭。我觉得它不那么疯狂,而且更干净:)