您现在的位置: 漯河教育网 >> 教育 >> 课件 >> 文章正文

使用“启动程序/打开文档”动作

作者:佚名 点击数: 2007-2-2 来源:天骥课件网
很多用户都会用到奥思中“工具”类的“启动程序/打开文档”动作,这个动作可以很方便地调用自己制作的或者是其他的应用程序或文档。

 但是,在使用的过程中遇到的最大问题是,打完包后,运行产品的时候会因为路径不对而使应用程序无法调用。

下面我们将通过几个实例来具体讲一讲如何有效地使用“启动程序/打开文档”这个动作。首先介绍在奥思3.1版中的用法,然后再简要讲讲在奥思5.0版中的使用,实际上5.0版和在3.1版中的用法基本是一样的,所以只讲一下两个版本的区别。

提示:为了清楚起见,在下文中出现的奥思脚本都用粗体字表示,并且在需要输入空格的地方,都直接写为“空格”。

在奥思3.1版中

一般我们使用“启动程序/打开文档”动作时,参数“应用程序”都是用的一个绝对路径,这就导致了在产品打包后,移到其他计算机上安装,无法启动应用程序。

下面我们介绍的方法是用奥思提供的系统函数来取得应用程序的路径,取到的是一个相对路径,这样,无论这个产品移到哪里,都可以正确地识别路径了。

假设我们制作的奥思产品文件为authtest.ath,要调用的应用程序名为myprj.exe

通常,设置调用其他应用程序的动作,在奥思中的操作步骤是这样的:

  1. 设置动作“启动程序/打开文档”,设置参数,单击“程序/文档名”,然后找到myprj.exe文件;

  2. 保存奥思产品文件后,打包。

  3. 选择“高级打包”方式。然后在“附加文件”属性页中添加myprj.exe文件。

打完包后,所附加的文件被放置在了\FmatAppl下。也就是说,是在奥思产品文件authtest.athauthtest.exe文件的上一级目录里。

authtest.athauthtest.exe文件在 \FmatAppl\authtest目录下。

按第一步的方法,是设置了应用程序的绝对路径。因此打包后运行产品时就找不到应用程序了。

设置参数的正确方法:

“动作行为”属性的右下角,在“程序/文档名:”下面的编辑框中直接输入,或者在“粘贴”旁边的下拉列表里选择“系统函数名”,打开“系统函数选择”对话框。在其中选择GetMediaRootDirectory() 函数。这个函数的作用是“取媒体路径的根路径”。

大家知道,打包以后,奥思所用到的媒体都放置在 \FmatAppl\authtest下的\image、\sound、\video等目录里。因此,GetMediaRootDirectory() 函数取到的路径就是 \FmatAppl\authtest

所以,“启动程序/打开文档”的参数应写为:

GetMediaRootDirectory()+"\\..\\myprj.exe"

说明:

  • \\..\\myprj.exe

     

是一个字符串,因此要用半角的引号引起来。

GetMediaRootDirectory() 函数的返回值也是一个字符串。

把这两个字符串用 + 号连接起来就是一个完整的路径。

  • ..\

表示所取到的目录的上一级目录,也就是\FmatAppl目录。因为前面说过了,当在打包时附加了myprj.exe文件后,其位置就在\FmatAppl中。

在输入参数的时候有两点要特别注意:

1.有些目录名中包含了空格,例如比较常见Program FilesMy Documents等等。

若按上文介绍的方法书写“启动程序/打开文档”的参数会报错,原因是奥思会把目录名中空格后的部分当成是参数来处理。

所以我们需要把

GetMediaRootDirectory()+"\\..\\.exe"

写成:

"\""+GetMediaRootDirectory()+"\\..\\myprj.exe\""

这样就万无一失了。

实际上,打包后的 \authtest目录名,就是在打包时所指定的“产品项名称”。若这里输入的名称带空格,则打包后就产生了带空格的目录名。

2.由于函数名称一般都较长,而奥思对表达式的长度有限制,超出限制的部分被忽略,导致动作不能正确执行。

3.1的光盘发布版本:构造号3.1.0.24版(可以通过“关于奥思”查看到)限制表达式的最大长度为127字节。

3.1版的更新程序:构造号3.1.0.26版以后的版本限制表达式的最大长度为512字节。

解决方法是定义一个变量,把函数赋值给这个变量。例如:

a=GetMediaRootDirectory()

那么上文的表达式就写成:

"\""+a+"\\..\\myprj.exe\""

这样就大大缩短了表达式的长度,避免设置无效的动作。

3.这样设置了以后,不应在奥思的编辑环境中测试效果。因为,我们要调用的myprj exe 这个程序的位置不在正确的位置。而可能是在硬盘或其他的什么位置。

因此,请大家注意,设置好了这个动作的参数后,应该打一次包,然后运行打包后的奥思产品.exe 文件来进行测试。因为我们要调用的myprj exe文件已经在打包时被附加到我们期望的位置了,所以这时候测试的结果是正确的。

下面我们来举两个实例:

实例一

奥思3.1版产品包装里所附带的“应用实例集锦‘99”光盘。

这张光盘里包括很多用奥思制作的实例,并且分门别类地放置到了指定的目录中。然后用一个主程序来调用这些例子。主程序的界面做成目录的结构,点击目录中的项目就调用另一个用奥思做的演示。

比如我们来调用“教育”类中的“一堂美术课”。首先我们要知道,“一堂美术课”对应的exe文件是\FmatAppl\Educate\Artist\Artist.exe。所以,“启动程序/打开文档”动作应该这样设置:

GetMediaRootDirectory()+"\\..\\Educate\\artist\\artist.exe"

说明:

  • \Educate

     

表示“教育”类演示程序的目录;

  • \artist

     

表示“一堂美术课”这个工程的目录。

实际上应先设计好,把所有演示程序都放在和主程序(主程序名为fd.exe)同一个目录下,每个分类下又有多个演示程序。所以在设置动作参数的时候就要特别注意。

只打包主程序fd,再把所有分好类的其他演示程序复制到fd的\FmatAppl目录下。

若大家手里有“应用实例集锦‘99”这张光盘的话,可以对照看一下上面的目录结构。

实例二

要求在奥思中连续播放两个用ScreenCam录制的文件。

有些用户需要将一些屏幕操作录制下来,放在奥思中播放。若选用LotusScreenCam来录制,则生成的文件格式为 .scm,播放时需要播放器scplayer.exe的支持。

若连续播放两个.scm文件test1.scmtest2.scm,在DOS下或Win98的“运行”中应按如下输入:

scplayer.exe空格/scr空格test1.scm空格test2.scm

说明:

  • /scr

scplayer.exe的参数,表示连续播放其后的两个文件。

播放器和参数之间用空格分隔。

上面的写法表示,先播放test1.scm,再播放test2.scm文件。

 奥思最后打包时需要附加scplayer.exe test1.scmtest2.scm这三个文件。因此在奥思中编辑“启动程序/打开文档”的动作,参数应写为:

"\""+GetMediaRootDirectory()+"\\..\\Scplayer.exe\"空格/scm空格\""+GetMediaRootDirectory()+"\\..\\test1.scm\"空格\""+GetMediaRootDirectory()+"\\..\\test2.scm\""

若定义变量a=GetMediaRootDirectory(),则上面就写为:

"\""+a+"\\..\\Scplayer.exe\"空格/scm空格\""+a+"\\..\\test1.scm\"空格\""+a+"\\..\\test2.scm\""

这样就简化了很多。

在奥思5.0/5.1版中

实际上“启动程序/打开文档”这个动作在3.1版和在5.0版中的用法完全一样。只不过在5.0版中分成了两个动作“启动程序”和“打开文档”。

另外还有一点不同的就是这两个版本的打包程序。5.0版的打包程序非常简单,没有“附加程序”这一项,因此在打完包后,就需要用户自己把所要调用的应用程序或文档直接复制到奥思产品的目录下。从上面的第一个例子也看到了,无论复制到奥思产品的哪个目录中,都能通过正确输入动作的参数而找到这个应用程序。

若直接复制到奥思产品的目录下,即和奥思产品的exe文件同在光盘的根目录下,则“启动程序/打开文档”的参数写为:

"\""+GetMediaRootDirectory()+"\\myprj.exe\""

 

在奥思6.0以后的版本中

在奥思6.0以后的版本中,“启动程序/打开文档”这个动作和在5.x版中的用法一样。只不过在方便性上做了些改进。

奥思6.0版增加了一个新功能,叫做“外部文件”,这个功能在“媒体管理器”里。它的作用是可以把需要运行的外部程序或文件放在这个“外部文件”夹下,“外部文件”夹下的所有文件在打包以后都会被复制到\Media\ExFile\目录下,这样,通过奥思6.0新增的函数(取外部文件名函数GetExternalFileName)直接指向这个路径,就能保证外部文件的正确调用,就不用象5.x及以前的版本需要写复杂的参数了。

实例:

假如我们需要在奥思里打开一个myprj.doc文件,操作步骤:

1、在奥思的媒体管理器里,把myprj.doc文件加到“外部文件”夹里;

2、编辑“启动程序/打开文档”的参数:

1)插入系统函数:取外部文件名函数GetExternalFileName(字符串 indexName);

2)把函数的参数 字符串 indexName 删掉;

3)点击旁边的“插入”按钮,选择最后一个命令“插入外部文件索引名”,弹出“选择媒体文件”对话框,里面列出了所有加到“外部文件”夹下的文件名,选中myprj.doc文件,点击确定按钮。

最后“启动程序/打开文档”的参数应写为:

GetExternalFileName("myprj.doc")

到此动作就定义完成了。

打包后,奥思会把myprj.doc文件复制到\Media\ExFile\目录下。这样就免去您复制文件的操作,并且“启动程序/打开文档”动作也能够正确找到文件的路径。

haiq
更多新闻内容,更多精彩在首页,
我也评两句
我的灌水记录
匿名发表

 

教案|课件|论文推荐


课堂实录

名师导学|家庭教育

教师美文|家庭教育|班主任

主编信箱  热线:0395-3163123给我们提意见