Software 版 (精华区)
发信人: checcy (老巴夺), 信区: Software
标 题: 活用VFP中的RUN命令
发信站: 哈工大紫丁香 (Mon Apr 6 11:22:40 1998), 转信
活用VFP中的RUN命令
刘艺
Visual Foxpro中RUN命令(也可用“!”代替)有很多
强大的功能,灵活使用可以产生一些特殊的编程效果,使V
FP开发的应用程序如虎添翼。现介绍活用技巧如下:
1、直接执行DOS命令
RUN可以在运行VFP应用程序时直接执行DOS内部命令
,如:TYPE、DIR、CD、MD、DEL、VER等,RUN作为一条VFP
语句可按下述语法执行:
RUN TYPE 文件名
也可以用RUN命令直接运行一个DOS下的应用程序。
2、生成MS-DOS外壳
类似于Windows的“MS-DOS方式”,VFP可以用
RUN COMMANDCOM
语句生成一个MS-DOS外壳。所生成的MS-DOS对话区
可以在一个窗口里,也可以是全屏幕模式。这种情况相当
于先退出VFP,然后进入DOS,不过使用这种“MS-DOS方
式”的好处是不必退出VFP,就可以处理DOS下的工作,在D
OS提示行内键入EXIT,又可以返回到原来的VFP状态。应
用程序中使用这一功能,可以满足习惯DOS的用户进行DOS
下的操作,而又不必退出VFP开发的应用程序。
3、运行Windows应用程序
RUN命令的最广泛应用就是在VFP程序运行中调用其它
Windows应用程序,这样既可以充分利用Windows资源,又
可以用VFP来集成其它应用程序,实现VFP难以开发的功能
,弥补VFP的不足。此功能可以实现前台、后台等多种Win
dows应用运行模式(参见表1),在编程中使用妙不可言。
其语法为:
RUN/Nk可执行文件名
可以在/N之后紧跟一个可选的数值k,指定Windows应
用程序的打开方式。注意不要在/N和数值之间加入空格。
下表列出了有效的数值,同时说明了基于Windows的应用
程序在每个数值下打开时对应的状态。
K值
应用程序属性
1
活动且大小正常
2
活动且最小化
3
活动且最大化
4
不活动且大小正常
7
不活动且最小化
(1)在菜单中使用
在VFP程序菜单命令中使用RUN命令可以增加许多特殊
功能,如:要增加“拨打电话”菜单,在对应菜单中输入
RUN/N1 C:\WINDOWS\DIALER.EXE命令即可。用户单击此菜
单,即运行Windows自带的打电话工具(必须是Windows 95
)。特别是当一个应用系统由多个独立模块组成,这些模
块又是由不同人用不同编程工具开发的情况下,只要这些
模块都编译成可执行文件,就可以用RUN命令在VFP菜单中
进行组织,集成在一个统一的VFP应用程序界面(桌面)上。
(2)在数据库中使用
用RUN命令调用Windows应用程序时,结合使用VFP数
据库的强大功能,可以达到不可思议的奇妙效果。把可执
行文件名存放在数据库中,最简单的应用就是对应用程序
进行有序的管理,使用OLE控件中的Outline Control可以
轻而易举地开发出Windows程序管理器或文件管理器风格的
界面并直接运行这些应用程序。笔者在开发一个多媒体课
件时,就利用了数据库存放课件中的多媒体应用程序(实
际上是存放文件名),这些程序是用Authware开发的独立模
块,并且可以通过VFP开发的主程序按学习进度和学习要
求进行调用,亦可利用VFP的随机函数来随机调用,对学生
进行测试。
VFP中RUN命令的使用,其实质是执行了一个指定的子
进程,该子进程是由其它程序运行的一种程序,待它执行
完毕后,会把控制权返回给VFP应用程序。但对于Windows
应用程序,则可以通过Windows的多任务管理功能在VFP应
用程序与其子进程(Windows应用程序)之间进行任意切换
。在使用RUN命令时,我们不能利用子进程来修改父进程(V
FP应用程序)的环境参数,同时要避免循环调用以及象:
USE MyDbf
!del MyDbf
这样的糟糕代码。用于DOS环境还要注意合理分配内
存。千万不要在Visual FoxPro内使用RUN来运行诸如CHKDS
K这样的磁盘重组程序。这些程序修改磁盘上内容的方式
可能会阻碍Visual FoxPro正常运行。
--
*********************************
Chengyan Che - Software Freelancer
Harbin, P.R.China
mailto: checcy@public.hr.hl.cn
ICQ: 5116726
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: checcy@public.hr.hl.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.281毫秒