2
我有一个控制台应用程序和一个双赢的形式应用程序,都需要调出了一些数据的远程服务器上,他们提出了一个调用腻子的命令行部分砰砰.exe,通过SSH运行远程命令。Process.WaitForExit()在控制台VS Windows窗体
我创建了两个微小的类库共享,运行以下:
public static string RunCommand(string command, string arguments) {
ProcessStartInfo startInfo = new ProcessStartInfo {
FileName = command,
Arguments = arguments,
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true
};
string output = null;
using (Process p = new Process()) {
p.StartInfo = processStartInfo;
p.Start();
output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
return output;
}
在控制台应用程序一切正常,赢下形成不出错,似乎WaitForExit()只是不等。我得到一个空字符串输出。我已经从远程服务器确认用户已经登录,所以看起来命令已经运行。
任何想法?
你的函数在哪里被调用? – 2009-12-15 21:42:48
我在Program.Main()和主窗体的ctor中都尝试了相同的结果。 – Gavin 2009-12-15 21:57:20
考虑阅读'p.StandardError' - 即使只是要确保命令确实按照您的预期完成了。 – 2009-12-15 22:00:38