用Foxpro设计动态安装程序 1995-06-23 本程序运行时,屏幕中央的“安装窗口”中有“正在安装:'和“系统安装到:”两项提示,分别以文件名和百分比显示目前正在安装的内容和已经安装的比例。同时,还有一条不断延长的光带,动态显示安装的进度。 安装前,先建一个安装文件数据库(install.dbf),该库只需一个字段(wjm,字符型,12个字节),然后一条记录一个文件名,把需要安装的文件输入库中。安装时,程序便按库中记录把提到的文件逐一安装。屏幕显示“正在安装:”的即是wjm字段的内容;而安装比例是当前记录与总记录数之比(即:bfs=dqjl/zjls)。动态光带长度是以安装比例乘以光带总长(程序中是50)获得,并以显示该长度的空格来实现。即: xs=(dqj1/zjls)*50 @ x,y say space(xs) 本程序如由批处理文件install.bat先拷贝到c:盘再运行,速度将更快,不过,这需在程序最后重新将它删除。下面是笔者为自己的“唐诗园”设计的安装程序。[程序清单] set talk off set start off clea set color to 7+/5,7+/5 define window win51 from 9,12 to 14,60 doub shad color 7+/5 acti window win51 @ 1,2,3,45 box @ 0,5 say ' TSY安装选择' DATAD=" " @ 2,4 say ' 请输入源盘所在驱动器(A/B):'get DATAD pict "!" read @ 0,5 say ' TSY安装目标盘选择' d=" " @ 2,4 say ' 请输入目标盘(C/D/E/F/G):' get d pict "!" READ CLEAR WINDOWS IF UPPE(D)="C" &&&判断目的盘,并建立和进入子目录。(E/F/G:已省略) !C: !MD TSY !CD TSY ENDIF IF UPPE(D)="D" !D: !MD TSY !CD TSY ENDIF DISK=DATAD TD=d define window win51 from 10, 10 to 16,70; title '“唐诗园”系统安装程序'doub shad color 7+/5 acti window win51 @ 2,3,4,55 box @ 1,5 say '正安装: 系统安装进行到:' use &DISK:install &&&打开安装文件数据库:install.dbf do while !eof() &&&进入循环,将库中文件一一拷贝 zjls=recc() &&&总记录数 dqj1=recn() &&&当前记录 bfs=dqj1/zjls bfb1=round(bfs,2)*100 &&&计算安装比例 xs=ROUND((bfs*50),2) &&&计算显示光带的长度 wjml=upper(wjm) @ 1,15 say wjml &&&显示正在安装的文件 copy file &DISK:&wjml to &td:&wjml set colo to 6/7* @ 3,5 say space(xs) &&&显示光带 set color to +7/5,5/5 @ 1,50 say ltrim(str(bfb1,3)+"%") &&显示安装比例 skip enddo @ 3,4 say "[唐诗园]系统安装完毕,任意键结束。 " wait " clear windows ! CD\ ! DEL C:INSTALL.* &&&删除由批处理拷贝到c:盘的安装文件 quit