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