从director中打开外部文件(外部应用程序或者外部非可执行文件)都使用lingo指令open!
帮助中open的描述:
open
语法
open {whichDocument with} whichApplication
描述
命令,可调用外部程序,并可实现调用外部程序打开文档。当应用程序与当前电影不在同一目录时,必须指定完整路径。计算机必须有足够内存能同时运行.Director 和应用程序。该调用比较简单,复杂控制可使用第三方的 Xtras实现。
本指令不支持shockwave环境!
例子
下面的代码实现检查当前计算机是否是Macintosh ,如果是,.则调用应用程序SimpleText。
if the platform contains "Mac" then open "SimpleText"
例子
下面代码调用HD盘Applications目录中的应用程序SimpleText ,文档名为 Storyboards:
open "Storyboards" with "HD:Applications:SimpleText"
参见 openXlib, safePlayer
总结一下:
1.当打开应用程序的时候,格式类如:
Open+空格+程序路径
*当目标程序和director项目文件在同级目录下的时候,我们可直接简写项目文件的名称
2.当打开一个非可执行文件的时候 ,就必须指明运行这个非可执行文件的应用程序。格式类如:
Open +空格+文件路径+with+应用程序路径
如:
Open “C:\Abc.doc” with "D:\Program Files\Microsoft office\Office\WINword.EXE"
这里就存在一个问题,当我们发布作品到客户机器上的时候,怎么确保用户机器上的应用程序的安装路径就和我们预设的一样呢?上面的代码中WINWORD.EXE很有可能被安装到了C盘或者E盘。
到这里下一个问题似乎就是如何获得用户机器上对应应用程序的安装路径了,这也是一个方法,具体可以通过检测注册表信息来解决,通常的应用程序会在注册表中保留安装路径等信息。当然具体它将信息记录在注册表中的哪个位置就靠你事先确定了! 这里提供另外一个方法:
通过FileXtra3的 FileOpenDocument 指令,范例如下:
On OpenDoc
FileXtra=New(Xtra "FileXtra3")
if FileXtra.fx_FileOpenDocument("C:\temp.doc") then
--
else
alert "你需要安装Office Word 软件!"
end if
end
--将("C:\temp.doc") 替换成你自己的文件即可!
使用这个方法我们不需要确定应用程序在客户机器上被安装到了什么位置,fx_FileOpenDocument指令会根据我们需要打开目标文件的类型从系统中寻找相关联的应用程序来运行他,与这个文件类型和相关联的应用程序是用户在资源管理器中设置的! 当用户安装了和目标文件关联的应用程序并成功被运行后,.fx_FileOpenDocument(*)返回True值(1),反之返回非1值,通常是用户没有安装对应的应用程序!对于这些情况我们就可以给出相应的提示或者执行一个特定的任务!