【发布时间】:2013-11-25 05:18:24
【问题描述】:
所以我决定开始使用 C# 进行编程,其中一件事是创建一个“pausec.exe”(pause.exe 克隆)。它可以工作,但是当像这样调用它时:
< nul pausec
...它崩溃了。我得到的错误 - 据我所知从西班牙语翻译成这样:
未处理的异常:System.InvalidOperationException:无法读取 当任何应用程序没有控制台或当 控制台输入已从文件重定向。尝试使用 Console.Read。
堆栈跟踪告诉我错误在哪里:
in System.Console.ReadKey(Boolean intercept)
in System.Console.ReadKey()
in pausec.Program.Main(String[] args)
这是我正在运行的代码:
using System;
namespace pausec
{
class Program
{
static void Main(string[] args)
{
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
Console.Write("\n");
}
}
}
我想知道是否有解决方法,甚至可以在使用 < nul 时忽略 ReadKey?
任何帮助表示赞赏。
提前致谢
更新:找到了一种方法,通过删除拦截 (as Alberto Solano suggested) 然后添加 Console.Write("\b \b");
在ReadKey 方法之后,它起作用了。奇怪的是,当我将应用程序复制到桌面时,它不会等待用户输入并自动关闭。
更新 2:现在可以完美运行。谢谢大家的回答!
【问题讨论】:
-
部落知识无法识别。你能解释一下
pause.exe是什么吗? -
@P.Brian.Mackey pause.exe 是一个 cmd 命令,显示“按任意键继续...”消息,等待您这样做,然后继续执行代码。