启用脚本的控制台应用程序输出

时间:2010-08-16 07:48:28

标签: c++ vbscript console-application stdout stdin

我有一个小型的C ++控制台应用程序,它会显示一个菜单,然后执行所选的操作。

另外,我编写了一个VBScript,它运行在StdOut上(由Exec实现)并输入StdIn值。

但是,当我尝试执行此脚本时,控制台应用程序卡在scanf调用中,并且脚本不会从输出中收到任何内容。 _flushall()无济于事。

有没有人有任何想法?

感谢。

1 个答案:

答案 0 :(得分:0)

VBScript / Windows Scripting Host非常困难,因为没有非阻塞IO。换句话说,没有办法说“立即阅读任何可用的东西,然后立即返回”。

  • 如果您说ReadLine,它将读取一行。如果现在没有准备就绪,它将等待一行。
  • 如果您说ReadAll,它将一直读取,直到文件句柄关闭,即直到程序退出。它会在此之前返回。

可以从脚本执行此操作,前提是您确切知道程序将在每种情况下创建的输出。

在大多数情况下,如果可能的话,最好以非交互式“批处理”模式设置程序,程序接受命令但不需要响应提示。