在run语句之后判断该程序是否执行完毕
Guest问:
run("e:\program files\microsoft visual studio\vfp98\vfp6.exe c:\gzhz.prg")
dw_1.reset()
messagebox("hello","按确定键把汇总文件导入!!!")
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中调用外部程序并判断其运行结束