这是最新一篇日志上一篇 | 下一篇
Study 订阅所有Study的日志

Flash8影片调用外部exe可执行文件

      Flash安全性的提高给我们带来的不便之一体现在调用外部可执行文件时.
      一. swf不能直接调用外部可执行文件了, 必须将swf打包成exe可执行文件才能使得影片调用外部exe.
      二. 必须在影片的相同目录中新建一名为"fscommand"的文件夹, 并把要调用的exe文件放置在该文件夹的根目录下面(注意: 只能是根目录, 不能是fscommand下面的其他目录). 以前可以调用Windows文件夹下的可执行文件, 以及可以通过绝对路径调用硬盘上任意位置的可执行文件, 但我在flash8中试过, 通通不行.
      flash8的这种安全设置让我们非常不便, 例如这次我必须让用户可以通过影片调用分布在不同文件夹的多个exe文件, 那么, 该如何解决问题呢?
 
      我使用的方法是通过bat批处理文件.
      一. 在fscommand文件夹中新建一个文本文档, 并将文件名改为00, 扩展名改为bat.
      二. 使用语句fscommand("exec", "00.bat"); 当影片打包成exe之后, 便可以调用fscommand文件夹中的00.bat文件了.
      三. 在00.bat批处理文件中写入以下代码:(注意"rem"表示此命令后的字符为注释,不执行)
     
 
      @echo off
      rem 关闭回显, 在这里是不让那些乱七八糟的路径在批处理窗口中出现.
      echo 正在启动程序e.exe,请稍候...
      rem 在窗口中显示echo后面的文字
      @start /wait c:\e.exe
      rem 调用c盘根目录下名为e.exe的文件

      start语句中值得注意的是使用了"/wait"参数, 这样可以使得在调用的外部程序退出后, 才进行下一步的命令, 这里下一步的命令是什么呢? 什么也没有, 所以在外部程序退出后, 批处理窗口也自动关闭了.
      之所以要这样写是为了防止批处理窗口一闪而过, 以便给用户提供足够的提示信息, 让用户知道外部程序已经在启动中了.
      批处理窗口还是比较简陋的, 如果有时间有精力的话, 不妨把批处理文件换成界面漂亮一点的可执行程序, 当然, 这样或许太小题大做了.




[本日志由 admin 于 2007-02-04 07:13 PM 编辑]
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags: FLASH cmd bat
评论: 1 | 引用: 0 | 查看次数: -
xzlogo[2006-09-03 09:47 AM | del]
楼主:中文路径有办法解决?
只能调用根目录下的文件很麻烦,如果路径中有中文,就不成功,太不适合我们中国人了!
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.