在run语句之后判断该程序是否执行完毕

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2017-06-13 17:06:09

  Guest问:
run("e:\program files\microsoft visual studio\vfp98\vfp6.exe c:\gzhz.prg")
dw_1.reset()
messagebox("hello","按确定键把汇总文件导入!!!")
dw_1.importfile("c:\gzhz.txt")
delete from gzhz;
dw_1.update()
程序中,执行第一句的时候,由于foxpro慢,没等它结束,就执行
了下面的句子。一句一句执行,该咋办?

蔡毅答:
在run语句之后判断该程序是否执行完毕。

定义外部函数:
Function long FindWindowA (String lpClassName , String lpWindowName ) Library "user32.dll"
Function boolean IsWindow (Long hwnd ) Library "user32.dll"

脚本:
run("e:\program files\microsoft visual studio\vfp98\vfp6.exe c:\gzhz.prg",Minimized!)

ll_handle = 0
//循环至窗口打开
Do While ll_handle = 0
ll_handle = FindWindowA("tty","foxpro应用的窗口名") //
yield() //
loop
//等待窗口关闭
Do While isWindow(ll_handle)
Yield()
Loop

(继续下面的语句)

Guest问:
我的gzhz.prg文件如下:
set safe off
use c:\gzhz.dbf
zap
appe from c:\gzhz.txt type deli with tab
sort on xm to c:\gzhz1.dbf(按姓名排序)
use c:\gzhz1.dbf
total on xm to c:\gzhz2.dbf(按姓名汇总)
use c:\gzhz2.dbf
sort on bh to c:\gzhz3.dbf(按编号排序)
use c:\gzhz3.dbf
copy to c:\gzhz.txt type deli with tab(生成一个TXT文件)
quit

那在这一句中,ll_handle = FindWindowA("tty","foxpro应用的窗口名")
我该填啥?

我是小木鱼答:
也可以这样做,在PB中:
run(....)
//延时,判断一下某文本文件中的某值或某文本文件是否存在?
若否则继续延时再判断,直到成功
//继续进行下面的语句。

在VFP中(你的*.prg文件)最后全部执行完毕后再新增一文件或改文本文件中的值。

不知我说明白了没!

相关连接:在PB中调用外部程序并判断其运行结束


Tags:

作者:佚名
分享到: 微信 更多