【发布时间】:2011-03-25 22:10:41
【问题描述】:
我的程序可以使用 GUI 或命令行运行。当它从命令行运行时,我会在程序启动后请求更多命令(使用 Console.Readline())。但是,在用户按下 Enter 之前(在他们输入输入之前),它不会接受用户的任何输入。
我将项目作为控制台项目启动:
[DllImport("kernel32.dll")]
private static extern bool AllocConsole();
[DllImport("kernel32.dll")]
private static extern bool AttachConsole(int pid);
private static void Main(string[] args)
{
if (args.Length > 0 && args[0] == "noGUI")
{
if (!AttachConsole(-1))
{
AllocConsole();
}
...
List<string> newInput;
do
{
Console.WriteLine();
Console.Write(@"Enter additional commands: ");
string inputStr = Console.ReadLine();
newInput = GetArgs(inputStr);
if (newInput.Count == 0)
{
Console.WriteLine();
Console.WriteLine(@"Please enter a valid command");
continue;
}
...
} while(true)
}
...
当用户输入“/Exit”时输出如下(例如):
输入其他命令: /Exit
'/Exit' 不是内部或外部命令,可操作 程序或批处理文件。
但是,如果用户首先按 Enter 键(在“输入附加命令:”之后),他们可以正常输入程序的命令。
知道为什么他们必须先按 Enter 键吗?用户在输入之前按下它并不直观,所以我想更改它。
谢谢!
【问题讨论】: