首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

怎么编个表单调用两个子系统(EXE文件)

2012-06-14 
如何编个表单调用两个子系统(EXE文件)?在一个目录下有两个子目录A和B,分别放有两个子系统A.EXE 和B.exe,如

如何编个表单调用两个子系统(EXE文件)?
在一个目录下有两个子目录A和B,分别放有两个子系统A.EXE 和B.exe,如何编个主表单调用子系统,最后还能分别回到主表单,再重新调用。路径问题搞不好。

[解决办法]
在一个目录下有两个子目录A和B
把这个目录放到你的程序当前目录,然后在你的主程序加代码:
Public gcNowPath
gcNowPath=Addbs(Justpath(Sys(16)))
Set Default To (gcNowPath)
调用时:

ox=CreateObject("WScript.Shell")
ox.Run(gcNowPath+"目录\子目录\A.exe",1,1) && 第3个参数0表示调用后马上将控件权返回原调用程序,1表示直到被调用程序结束后才将控件权返回原调用程序(调用外部文件时让系统一直等待,直到运行结束才返回控制权就可以了)。
Release ox
[解决办法]
ox.run(...) 之前加一句:Application.Visible = .f.
以免用户看到两个界面,而主界面又在死等 a 或 b 结束并返回控制权

[解决办法]

探讨
出现如下提示:
Cannot locate the Microsoft Visul FoxPro surport library!

[解决办法]
一、参考一下下面的的代码: 
注意,READ event的位置。 主表单【sys_kl】的退出按钮除了应该是2句话:
thisform.release
clear event && 退出系统

VB code
 * ================================================================= \\ 【设置系统环境】      SET EXCLUSIVE OFF     SET TALK OFF     SET SAFETY OFF     SET DELETED ON     SET EXACT ON     SET ESCAPE OFF     SET LOCK OFF     SET NULLDISPLAY TO ''     SET CENTURY ON     &&指定日期的年为4位数     SET DATE AMERICAN  && 月日年     SET HOURS TO 24    && 时间为24小时制     SET SYSMENU OFF    &&关闭系统菜单     SET NOTIFY off     CLEAR      CLEAR ALL * --------------------------------------------- \\ 获得当前系统目录      DECLARE LONG GetSystemDirectory IN WIN32API STRING @ , LONG      DECLARE LONG GetWindowsDirectory IN WIN32API STRING @ , LONG      DECLARE LONG GetCurrentDirectory IN WIN32API LONG , STRING @     public LCSYSDIR , LCWINDIR , LCCURDIR , LNSTRINGLEN,n_dy          LCSYSDIR = SPACE(200) + CHR(0)     LCWINDIR = SPACE(200) + CHR(0)     LCCURDIR = SPACE(200) + CHR(0)     LNSTRINGLEN = GETSYSTEMDIRECTORY(@LCSYSDIR,200)     LCSYSDIR = LEFT(LCSYSDIR,LNSTRINGLEN)     LNSTRINGLEN = GETWINDOWSDIRECTORY(@LCWINDIR,200)     LCWINDIR = LEFT(LCWINDIR,LNSTRINGLEN)     LNSTRINGLEN = GETCURRENTDIRECTORY(200,@LCCURDIR)     LCCURDIR = LEFT(LCCURDIR,LNSTRINGLEN) Sys(987,.T.)   && 汉字兼容     set defa to &lccurdir     _SCREEN.WINDOWSTATE = 1* ================================================================== \\ 【执行主程序】     DO FORM cx\sys_kl     READ event     CLEAR     CLEAR ALL     CLOSE all     QUIT
[解决办法]
探讨
另外,你的命令“ox.Run(gcNowPath+"目录\子目录\A.exe",1,1)” 中的gcNowPath变量,假如有空格是不是有问题?

热点排行