管道击键命令行程序和System.Console.get_KeyAvailable()异常

时间:2014-06-12 18:46:17

标签: c# command-line exception-handling pipe

我正在尝试在Windows 7中自动执行命令行程序(我相信是用C#编写的)。当我运行程序并手动输入输入时,它运行正常。但是,当我尝试从文本文件(即type input.txt | Program123.exe)输入相同的输入时,我得到以下异常:

Unhandled Exception: System.InvalidOperationException: Cannot see if a key has b
een pressed when either application does not have a console or when console inpu
t has been redirected from a file. Try Console.In.Peek.
   at System.Console.get_KeyAvailable()
   at Program123.Program.Main(String[] args)

当它等待用户按任意键退出程序时会发生这种情况。

1 个答案:

答案 0 :(得分:0)

错误消息几乎说明了一切。该程序不支持管道或重定向输入。原因是当程序在等待按键时,它正在直接读取按键而不是从标准输入读取。

我认为您可以使用类似AutoIT的程序。