荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: pIII (重出江湖), 信区: Multimedia
标  题: 老生常谈的调用外部程序
发信站: BBS 荔园晨风站 (Sun May 28 10:30:37 2000), 站内信件


--关于在Authorware中调用外部程序,不断地有人问起,包括与此有关的各种问题,这
里再总结一下。
    ●首先看一下JumpOutReturn(),这个函数的作用是打开指定的程序再由这个程
序去打开指定的文档(实质是调用了Windows API)。因此有两个参数,分别对应
了程序和文档。
    由于被调用的程序各种各样,本身又可能有自已的参数,另一方面Windows中
把许多文档与应用程序做了关联,所以这个函数运行起来的结果有时有点让人莫名
其妙(特别在AW4.0及以前的版本有BUG)。如:JumpOutReturn("","a.bmp")运行的
结果是画图程序打开了a.bmp文件,因为bmp文件被画图关联了,如果你的机器上装
了ACDSEE并改了关联的话,你会发现运行的结果是ACDSEE打开了a.bmp文件。而直
接用JumpOutReturn("acdsee32.exe","a.bmp")在AW5.0中就可以不用考虑关联的问
题(AW4.0及以前版本有Bug,如果第二个参数指定的文档已被关联,则不论第一个参
数指定什么程序,AW都会用关联的程序去打开相应文档)。
    因为EXE文件是系统默认的可执行程序,所以也相当于做了关联,你用
JumpOutReturn("","acdsee32.exe")的方法也能用调用文档的方式执行相应的程序
。事实上Windows程序打开文档的方式一般都可以通过参数来传递,也就是之所以
程序被调用并且打开了相应的文档是因为系统把文件名当作一个参数传给了它。因
此我们可以把JumpOutReturn()的第二个参数看作是第一个参数对应程序的调用参
数。这就解决了调用程序传参数的问题。
    这里要注意的是不少程序设计时按自定义的格式来传参数,所以对传过去的参
数不能正确识别导致出错,这要看具体的程序了。比如屏幕记录工具Lotus
ScreenCAM产生的可执行程序,调用时要屏蔽启动画面的方法是加参数/s,因此在
传参数时这个“/”不能少,否则程序以为传给它的是一个要打开的文档了:)
    关于JumpOutReturn,还有网友询问如何调用Command.com或其它.Com文件(还有
Bat),因为在AW4中系统总是不承认你输入的文件名,而是弹出对话框说找不到这个
文件。其实解决的办法很简单,调用时不要加扩展名,如:JumpOutReturn("c:
\\command"),而不是JumpOutReturn("c:\\command.com"),试试看吧?不过在AW5
中这个问题已得到解决。

--------------------------------------
             我不想再等待!!!
             把握现在,意味着开拓未来!
             愿同我一起奋斗吗?

※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.36.1]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店