커맨드 라인을 사용하여 WireShark를 열고 패킷 캡처를 시작합니다. CMD 창을 사용하면 들어오는 패킷 수와이 번호를 신청서 양식에 표시하고 싶습니다. 현재 양식입니다. 내 코드 만 오차 내 응용 프로그램 충돌이프로세스의 출력을 얻는 방법은 무엇입니까?
static void Main(string[] args)
{
try
{
string _pcapPath = @"C:\test.pcap";
Process _tsharkProcess = new Process();
_tsharkProcess.StartInfo.FileName = @"C:\Program Files\Wireshark\tshark.exe";
_tsharkProcess.StartInfo.Arguments = string.Format(" -i " + 2 + " -c " + int.MaxValue + " -w " + _pcapPath);
_tsharkProcess.OutputDataReceived += new DataReceivedEventHandler(process_OutputDataReceived);
_tsharkProcess.StartInfo.RedirectStandardOutput = true;
_tsharkProcess.StartInfo.UseShellExecute = false;
//_tsharkProcess.StartInfo.CreateNoWindow = true;
//_tsharkProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
_tsharkProcess.Start();
StreamReader myStreamReader = _tsharkProcess.StandardOutput;
string myString = myStreamReader.ReadLine(); //read the standard output of the spawned process.
Console.WriteLine(myString);
_tsharkProcess.WaitForExit();
}
catch (Exception)
{
}
}
private static void process_OutputDataReceived(object sender, DataReceivedEventArgs e)
{
string srt = e.Data; //arg.Data contains the output data from the process...
}
그래서 오류 때문에 게시 - http://stackoverflow.com/questions/1700695/getting-output-from-one-executable-in-an-other-one –
'RedirectStandardOutput'을 설정하기 전에 시도해 보셨습니까? 'process.Start()'호출? –
이제 redirectStandardOutput 및 UseShellExecute를 process.Start()로 설정 한 후에 확인해도되지만 프로세스의 출력은 어떻게 얻을 수 있습니까? 지금은 열린 CMD 창이 비어 –