2013-05-03 39 views
0

我被要求找出一种方法来关闭在主机上运行的应用程序,当我确定Flash应用程序正在浏览器中运行时,这似乎是一项艰巨的任务,但我已经想到了一些可能的方法来实现这一点,我想问问哪种方法是最好的。从闪存暂时关闭应用程序

我看到这些的方式是我的可能性

  1. 具备闪光灯应用程序创建的cookie,另一个程序检查,如果检测到这个程序在计算机上运行后会再关闭其他应用程序。
  2. 有一个程序运行在监听特定端口的主机上,以及何时发送正确的字符串fx。通过使用动作套接字,程序会暂时关闭应用程序。
  3. 创建程序嗅探网络流量,如果正在下载swf,请暂时关闭其他应用程序(这似乎是最不可行的方法,甚至不能确定这将有可能有效)

我需要这样做的原因是因为Flash应用程序需要访问主机的网络摄像机,该主机计算机兼作运动检测摄像机,这意味着在运动检测软件运行时摄像机将被锁定。所以我需要关闭运动检测软件,在闪光灯中拍摄一张照片,保存照片并再次启动运动检测。

我错过了一些超级简单的方法吗?你会怎么做到这一点?预先感谢您的答案。

回答

0

TBH我不认为你会在这一点,除非你把它创建为AIR应用程序(当然,我并没有花太多的脑力上想出的解决方案)取得成功, 。 Flash Player非常限制你可以做什么,不可以做什么。 ExternalInterface是被视为过时的FSCommand的替换,BTW。它允许你通过AS与swf容器进行通信。 JS(也许VBScript?)只有。

但是,如果事实证明您需要创建Air应用程序,则可以使用NativeProcess,它允许您在主机上运行应用程序。举例来说,如果你想运行一个Java的.jar你可以这样做:

var javaExecutable : File = new File(); 
javaExecutable.nativePath = '/path/to/java/'; 

var processArguments : Vector.<String> = Vector.<String>([ 
    '-jar', 
    '/path/to/jar/', 
    'foo' 
]); 

var process : NativeProcessStartupInfo = new NativeProcessStartupInfo(); 
process.executable = javaExecutable; 
process.arguments = processArguments; 

var shell : NativeProcess = new NativeProcess(); 
shell.addEventListener(NativeProcessExitEvent.EXIT, onExitEvent); 
shell.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, onStdOutputDataEvent); 
shell.start(process); 

非常重要的注意事项:(重点煤矿)

NativeProcess类及其功能只适用到安装了本机安装程序(扩展桌面配置文件应用程序)的AIR应用程序

+0

感谢您的意见;)考虑到了这一点,我们最终同意采用另一种不使用闪光灯的方法。 – 2013-05-09 17:59:40

0

您还可以使用fscommand()函数将消息传递给Director 或Visual Basic中的Visual C++和可承载 ActiveX控件的程序。

FSCommand