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中调用外部程序并判断其运行结束
|