请教两个问题:上一语句来不及完成结果,下句却要用他的结果,怎么办?(100分)

  • 主题发起人 主题发起人 8341
  • 开始时间 开始时间
8

8341

Unregistered / Unconfirmed
GUEST, unregistred user!
1、比如说,
winexec('nbtstat -a 100.100.100.100>tmp.txt',1);
readln(tmp.txt,str); //伪码了,大概意思。
实际上上句的tmp.txt没等到生成,下句已经开始在读他了,怎么样让他们不产生错误?

2、如上例的winexec('nbtstat -a 10.10.10.10',0); 如果第二个参数是0,既不显示DOS窗
口,则程序执行后,在内存中有一个winoldap进程,怎样把他结束?,
 
用Try 可以屏掉第一个的错误显示,不过你要得到结果很难.

关于winexec 你用 sw_hide试试有没有winoldap进程?
 
1:Sleep(N);延时n毫秒
2:等待自动结束
 
使用shellexecute然后用其返回的handle来判断创建的进程是否终止.
var
hd:handle;
rcode:dword;
begin
hd:=shellexecute(....);
repeat
until GetExitCodeProcess(i,rcode)<>0;
//作你想做的事
end;

可以查看win32的帮助去了解这两个函数的细节
 
之间加各 application.processmessage
读之前先判断一下,不行再延时
 
多人接受答案了。
 
后退
顶部