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