Windows窗体应用程序中的控制台输出

时间:2013-09-13 19:28:15

标签: winforms process console

CASE 1
    Process processo = new Process();
    processo.StartInfo.CreateNoWindow = true;
    processo.StartInfo.UseShellExecute = false;
    processo.StartInfo.RedirectStandardOutput = true;
    processo.StartInfo.FileName = "ftp";
    processo.StartInfo.Arguments = "-s:comandos.cmd";
    processo.Start();
    processo.WaitForExit();
    output = processo.StandardOutput.ReadToEnd();   


CASE 2
AllocConsole();
Process processo = new Process();
processo.StartInfo.CreateNoWindow = true;
processo.StartInfo.UseShellExecute = false;
processo.StartInfo.RedirectStandardOutput = true;
processo.StartInfo.FileName = "ftp";
processo.StartInfo.Arguments = "-s:comandos.cmd";
processo.Start();
processo.WaitForExit();
output = processo.StandardOutput.ReadToEnd();
FreeConsole();

为什么使用案例1和2的输出不一样? Alloc和FreeConsole是来自kernel32.dll的函数...我正在使用Windows窗体应用程序。

comandos.cmd连接到服务器并使用“dir”命令。

有没有办法使用AllocConsole()而不显示控制台窗口?

第一个输出是: 用户xxx 为archive1 archive2

cd文件夹 DIR 退出

第二个输出是: 打开xxx 用户xxx 331用户好 230密码确定 cd文件夹 为archive1 archive2 226转移完成 收到xxx字节 放弃 221 GoodBye

0 个答案:

没有答案