if CreateProcess(nil, CmdLine, nil, nil, True, NORMAL_PRIORITY_CLASS, nil, nil, SI, PI) then begin ExitCode := 0;
while ExitCode = 0 do begin wrResult := WaitForSingleObject(PI.hProcess, 1000);
if PeekNamedPipe(hReadPipe, @Dest[0], 32768, @Avail, nil, nil) then begin if Avail > 0 then begin try FillChar(Dest, SizeOf(Dest), 0); ReadFile(hReadPipe, Dest[0], Avail, BytesRead, nil); TmpStr := Copy(Dest, 0, BytesRead - 1); Line := Line + TmpStr; except end; end; end; if wrResult<>WAIT_TIMEOUT then ExitCode := 1; end; GetExitCodeProcess(PI.hProcess, ExitCode); CloseHandle(PI.hProcess); CloseHandle(PI.hThread); end; finally ShowMessage('a'); if Line = '' then Line :='命令没有输出回应!'; ItemList.Text := Line; CloseHandle(hReadPipe); CloseHandle(hWritePipe); end; end;
----------------------------------------------
-