Windows Server 2008을 사용 중이고 DNS 서버를 가져 오려고합니다. 그래서 가장 빠른 방법은 ipconfig를 실행 한 다음 TProcess를 사용하여 출력을 구문 분석해야한다는 것입니다. TProcess와 함께 실행할 때 콘솔 응용 프로그램이 반환되지 않습니다.
가이 코드를 내놓았다 한 :var
proces : TProcess;
begin
...
proces := TProcess.Create(nil);
proces.Executable := 'ipconfig';
proces.Options := proces.Options + [poWaitOnExit,poUsePipes];
try
proces.Execute;
except
proces.Free;
end;
SetLength(rez,proces.Output.NumBytesAvailable);
proces.Output.Read(rez[1],proces.Output.NumBytesAvailable);
ShowMessage(rez);
코드가 작동하지만 수동으로 poNoConsole
을 시도 창문으로 콘솔 여전히 같은 결과를 닫은 후, 과정에서 ipconfig는 윈도우 작업 관리자에서 활성 상태로 유지됩니다.
콘솔 응용 프로그램 ipconfig가 종료되지 않는 이유는 무엇입니까? 만약 내가 그것을 실행하면 stdout 정보를 침을 뱉어 내고 나간다.
내 구성입니까? 그게 버그 야? 도움! 고마워요 :)
감사 sense.FPC 훌륭합니다 많은 : D는 API 버전/적은 64 비트 윈도우에 대한 검증되지 않은 JWA 단위를 사용하는 – opc0de
참고. –