Tag: console

C#如何使用参数读取控制台输出

是否可以运行控制台应用程序并将其输出的内容作为C#中的字符串返回? 我希望能够在运行控制台应用程序时使用参数: c:\files\app.exe -a 1 -b 2 -c 3

将控制台分成两部分,用于两个输出

我正在创建一个控制台应用程序,我希望有两个输出和一个输入。 原因是一个输出始终可见。 This is the first output Text flows upwards just like a regular console application, however… ——— This is a second output This is placed at the bottom of the console // also input goes here. 我想把它称之为这样的东西 Console.Out.Writeline(“This is the first output”); Console.Out.Writeline(“Text flows upwards just like a regular console application, however…”); MyTextWriter.WriteLine(“This is […]

在分配控制台之前调用Console.WriteLine

我最近遇到了我的应用程序的以下问题:尽管已使用AllocConsole分配了控制台,但它没有显示任何控制台输出。 我很快就弄明白,这是由于在调用AllocConsole之前写入控制台的尝试(深深隐藏在代码中)引起的。 所以它看起来像这样: Console.WriteLine(“Foo”); // no console allocated yet AllocConsole(); // console window appears Console.WriteLine(“Bar”); // expecting “Bar” in the console, but the console is blank 所以我的问题是:为什么会发生这种情况? 我没有看到任何例外(虽然我认为他们在那里)。

如何保存控制台应用程序的输出

我需要建议如何让我的C#控制台应用程序通过标准输出向用户显示文本,同时仍然可以在以后访问它。 我想实现的实际function是在程序执行结束时将整个输出缓冲区转储到文本文件中。 我使用的解决方法,虽然我找不到更清晰的方法是子类TextWriter重写写入方法,所以他们都会写入文件并调用原始的stdout编写器。 像这样的东西: public class DirtyWorkaround { private class DirtyWriter : TextWriter { private TextWriter stdoutWriter; private StreamWriter fileWriter; public DirtyWriter(string path, TextWriter stdoutWriter) { this.stdoutWriter = stdoutWriter; this.fileWriter = new StreamWriter(path); } override public void Write(string s) { stdoutWriter.Write(s); fileWriter.Write(s); fileWriter.Flush(); } // Same as above for WriteLine() and WriteLine(string), // plus whatever […]

更改控制台窗口的大小会抛出ArgumentOutOfRangeException

我试图在ac#console应用程序中设置控制台窗口的大小。 我收到带有此消息的ArgumentOutOfRangeException : 该值必须小于该维度中控制台当前最大窗口大小41。 请注意,此值取决于屏幕分辨率和控制台字体。 我用它来设置它: Console.WindowHeight = 480; 如何正确设置控制台窗口的大小?

如何使用AsyncPump在异步控制台应用程序中保留exception上下文?

我正在使用Steven Toub优秀的AsyncPump类 ,它允许控制台应用程序使用async / await关键字。 但是,我遇到的问题是,代码中抛出的exception会被泵捕获然后重新抛出,这会导致原始调用堆栈和exception上下文丢失。 这是我的测试代码: class Program { static void Main(string[] arg) { AsyncPump.Run(() => MainAsync()); } static async Task MainAsync() { throw new Exception(); // code should break here } } 如果运行此测试,则调试器不会根据需要中断throw new Exception() 。 相反,它打破了t.GetAwaiter().GetResult() ,它是AsyncPump类本身的一部分。 这使调试应用程序非常困难。 有没有办法重新抛出exception,以便调试器在保留调用堆栈和上下文的同时在原始位置中断?

控制台应用程序等待keyup

我目前正在研究c#中的roguelike。 世界,玩家等在控制台内呈现。 但是当控制台中有太多变化时,它会滞后。 为了绕过这个,我试图让程序等待玩家取消按下玩家所按的键。 任何人都知道如何制作这个? 不好,没有类似Console.ReadKeyUp()东西。 while(Console.KeyAvailable){ } 好像不行…… 这是一些代码: public void move(){ if(!MainClass.loading){ switch(Console.ReadKey().Key){ case ConsoleKey.NumPad8: //walk up break; case ConsoleKey.NumPad4: //walk left break; case ConsoleKey.NumPad6: //walk right break; case ConsoleKey.NumPad2: //walk down break; case ConsoleKey.NumPad7: //walk left up break; case ConsoleKey.NumPad9: //walk right up break; case ConsoleKey.NumPad1: //walk left down break; case ConsoleKey.NumPad3: […]

如何在C#中更改控制台窗口的完整背景颜色?

在C#中,控制台具有可用于更改控制台背景颜色和控制台前景(文本)颜色的属性。 Console.BackgroundColor // the background color Console.ForegroundColor // the foreground/text color 问题是背景颜色仅适用于写入文本的位置,而不适用于自由空间。 Console.BackgroundColor = ConsoleColor.White; // background color is white Console.ForegroundColor = ConsoleColor.Blue; // text color is blue 现在,使用上面的代码,它确实将文本变为蓝色,但它只将文本的背景变为白色,而不是整个控制台窗口的背景。 这是我的意思的一个例子: 如您所见,白色背景仅显示在文本后面,并不会更改整个控制台窗口的颜色。 如何更改整个控制台窗口的颜色?

是否可以在单个Visual Studio Windows控制台项目中混合使用.cs(C#)和.fs(F#)文件? (。净)

怎么做? 是否可以在不使用分离的dll文件或项目的情况下将函数从一个F#代码调用到C#中?

如何隐藏控制台窗口?

问题:我有一个不应该看到的控制台程序。 (它重置IIS并删除临时文件。) 现在我可以设法在开始后立即隐藏窗口,如下所示: static void Main(string[] args) { var currentProcess = System.Diagnostics.Process.GetCurrentProcess(); Console.WriteLine(currentProcess.MainWindowTitle); IntPtr hWnd = currentProcess.MainWindowHandle;//FindWindow(null, “Your console windows caption”); //put your console window caption here if (hWnd != IntPtr.Zero) { //Hide the window ShowWindow(hWnd, 0); // 0 = SW_HIDE } 问题是这显示了一秒钟的窗口。 是否有控制台程序的构造函数,我可以在显示之前隐藏窗口? 第二个: 我用 [System.Runtime.InteropServices.DllImport(“user32.dll”)] static extern bool ShowWindow(IntPtr hWnd, int nCmdShow); 而且我不喜欢它里面的32。 […]