使用此代码
Process process = new Process();
// p.EnableRaisingEvents = true;
process.EnableRaisingEvents = true;
process.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.LoadUserProfile = false;
process.StartInfo.UseShellExecute = false;
process.StartInfo.FileName = @"C:\putty.exe"; ; // Gets or sets the application or document to start.
process.StartInfo.Arguments = "-serial com31 -sercfg 9600,8,n,1,N";//Gets or sets the set of command-line arguments to use when starting the application
Thread.Sleep(1000);
process.Start();//Starts (or reuses) the process resource that is specified by the StartInfo property of this Process component and associates it with the component.
process.BeginOutputReadLine();
process.WaitForExit(); // wait forever with ping
我正在尝试在控制台应用程序中打开putty,但是我使用它的任何时候都会在新窗口中打开,我无法使用process.OutputDataReceived
事件输出该进程
我正在使用与此非常相似的代码来打开Iperf
并且它可以正常运行
我在这里缺少什么?
答案 0 :(得分:2)
Putty
不一个console application
,因此不会在其stdout
和stderr
流上提供输出。
由于 是windowed application
,因此不关心是否使用CreateNoWindow
标志启动它。尝试使用该标志启动notepad.exe
,您会看到它显然出现。
然而,Putty
的创建者提供了一个程序,可以提供您需要的功能。
它被称为Plink.exe
,您可以在homepage