Authorware调用可执行文件后的窗口处理_课件制作
有不少人反映authorware的jumpoutreturn执行了外部命令后立即返回继续运行,也就是说在调用完相应文件后authorware就不管了,两个程序形成了同时运行的状态并且相互之间不能联系,这样无论用户对执行程序进行了什么操作authorware都不管。以网友mouseboy的问题为例,他在authorware中调用了screencam制作的自执行影片,但运行时移动了screencam的窗口,下面就露出了authorware的窗口,而且authorware还在运行中等待交互哩!真是煞风景乍解决呢?以这个问题为例讲一下吧(假设自执行影片为c:\play.exe,lotus screencam 97制作):
1、加上计算图标,内容为:
--将authorware窗口隐藏(移出屏幕)
x:=windowtop
y:=windowleft
movewindow(1024,768)
jumpoutreturn("c:\\play.exe");
2、其后跟一个等待图标,时间设为2秒,用于等待play.exe的窗口出现(否则findwindow函数在窗口未打开之开就先检查了);
3、再跟一个等待图标名为wait,时间设为.5秒,用于循环控制;
4、调入winapi.u32/ucd中的findwindow函数,加入一个计算图标,内容如下:
--检查play窗口是否关闭
if findwindow("screencamplayerwndv3","lotus screencam 97")<>0 then
goto(iconid@"wait")
end if
--恢复窗口
movewindow(x,y)
这里解释一下findwindow函数,这是一个windows api函数,如果你进行过windows程序设计可能会知道,它是用来检查系统中相应窗口句柄的,如返回0一般说明窗口不存在,两个参数一个是窗口类名,一个是窗口名(标题条上的标题),对于不同窗口这两个值不一样,可以用visaul c++中的spy来检查这两个值。另外要注意的是在隐藏窗口和play窗口出现的间隙屏幕上会出在空白而露出桌面同样影响画面效果,解决方法可以用cover()(cover.ucd/u32在我的工具栏目中可download)函数将桌面盖住。