暂时关闭闪光灯应用程序

时间:2013-05-03 09:32:49

标签: actionscript-3 flash sockets ipc webcam

当我在浏览器中运行某个Flash应用程序时,我被要求找出一种关闭主机上正在运行的应用程序的方法,这看似很困难,但我想到了一些可能的方法来实现这一点,我想问哪种方法最好。

我认为这些是我的可能性

  1. 让Flash应用程序创建另一个程序检查的cookie,如果检测到,则计算机上运行的程序将关闭其他应用程序。
  2. 在主机上运行程序,侦听特定端口,并在fx发送正确的字符串。通过使用actionscript套接字,程序将暂时关闭应用程序。
  3. 创建一个程序嗅探网络流量,如果正在下载有问题的swf,请暂时关闭其他应用程序(这在我看来是最不可行的方法,甚至不能确保它可以有效地执行)
  4. 我需要这样做的原因是因为闪存应用程序需要访问主机的网络摄像头,它兼作运动检测摄像头,这意味着在运动检测软件运行时摄像头将被锁定。因此,我需要关闭运动检测软件,在闪存中抓取图片,保存图片并再次启动运动检测。

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

2 个答案:

答案 0 :(得分:0)

  

您还可以使用fscommand()函数将消息传递给Director   或Visual Basic,Visual C ++和其他可以托管的程序   ActiveX控件。

FSCommand

中的

答案 1 :(得分:0)

TBH我认为你不会在这方面取得成功,除非你把它创建为Air应用程序(被授予,我没有花太多脑力来思考解决方案)。 Flash播放器对你能做什么和不能做什么都有很大的限制。 ExternalInterface取代了FSWmand,它被认为是过时的,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应用程序(扩展桌面配置文件应用程序)。