菜问题,请各位大哥帮忙,为何子进程结束不了。
创建一个新的cmd进程读写了管道,就结束不掉了
invoke CreateProcess,NULL,addr szCmd,NULL,NULL,TRUE,NULL,NULL,NULL,\
addr @stSI,addr @stPI ;创建cmd进程
.if eax==NULL
invoke _ConsolePrint,addr szCreateErr
jmp @F
.else
invoke WriteFile,@PipeWrite1,addr szCommand,sizeof szCommand,\
addr @bytesRead,NULL ;把命令写入管道,让cmd进程执行
invoke CloseHandle,@PipeWrite
.while TRUE
.break .if (dwOption & F_ABORT)
invoke RtlZeroMemory,addr @buffer,1024
invoke ReadFile,@PipeRead,addr @buffer,1023,\
addr @bytesRead,NULL ;读管道输出
.if eax==NULL
.break
.endif
invoke _ConsolePrint,addr @buffer ;打印输出
.endw
.endif
invoke CloseHandle,@PipeWrite1
invoke CloseHandle,@PipeRead1
invoke CloseHandle,@PipeRead
invoke CloseHandle,@stPI.hThread
invoke TerminateProcess,@stPI.hProcess,-1 ;>>>>>>>>>>错误所在>>>>>>>>>>
程序执行以后父进程(console)输入的命令成功执行,并且返回了执行结果,但是在最后结束子进程时没有成功,用于输入命令的父进程阻塞,不知道如何解决啊。原因是什么啊????这个问题困扰了我一个星期了,找极度苦恼中。。。。