Windows Server 2008を使用していますが、DNSサーバーを取得したいと考えています。そのため、最速の方法はipconfigを実行してから、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情報を吐き出した後に終了します。
それは私の構成ですか?バグですか?ヘルプ!ありがとう :)