Tag: console

如何在.NET 4中使用Console.CancelKeyPress? (在.NET 3.5及更低版本中正常工作)

我正在C#4中编写一个控制台应用程序,并希望优雅地取消我的程序并按下Ctrl + C. 我之前使用过很多次代码,但现在尝试在.NET 4中使用它时,似乎发生了一个奇怪的未处理exception。 namespace ConsoleTest { class Program { private static bool stop = false; static void Main(string[] args) { System.Console.TreatControlCAsInput = false; System.Console.CancelKeyPress += new ConsoleCancelEventHandler(Console_CancelKeyPress); while (!stop) { System.Console.WriteLine(“waiting…”); System.Threading.Thread.Sleep(1000); } System.Console.WriteLine(“Press any key to exit…”); System.Console.ReadKey(true); } static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e) { stop = true; e.Cancel = true; […]

如何在C#中获取CMD /控制台编码

我需要指定正确的代码页来打包带有zip库的文件。 我看,我需要指定控制台编码(在我的情况下为866)。 C:\Users\User>mode Status for device CON: ———————- Lines: 300 Columns: 130 Keyboard rate: 31 Keyboard delay: 1 Code page: 866 <- I need to get this value in C# code Console.OutputEncoding返回1251,这不是我需要的。 谢谢, 亚历克斯 更新1:显然,在cmd.exe中执行“mode”并解析输出应该有效但看起来太粗鲁了。 我正在寻找.NET解决方案。 更新2:应用程序是Windows窗体应用程序,而不是控制台应用程序。

c#console snake卡在长按键上

几个月前我刚开始学习编程,并决定做一个控制台蛇游戏。 对于一件事,一切都很有希望。 如果我的蛇向上走,我按下箭头并按住它 ,我的蛇就停止了,在我停止按下按钮后,它停留了一段时间。 同样的事情发生,如果我的蛇向右走,我按下右箭头太久,我失去控制一段时间(但蛇不停止)。 它发生在各个方面(左,右,上,下)。 我试图将cki与另一个ConsoleKeyInfo进行比较,但它们之间有轻微的延迟,但这并不重要。 如果我按下按键,我的程序就会保留该位置并更新按键。 (至少我认为这就是问题) 这是Console.ReadKey的“function”还是有某种方法可以解决这个问题? 请记住,我刚刚开始,所以我还不知道高级的东西。 只要我不按键超过1秒钟,一切都能完美无瑕。 public void LiikutaMato() //movesnake { if (Console.KeyAvailable) { ConsoleKeyInfo cki; cki = Console.ReadKey(true); // <– I believe this is where it gets stuck }

如何在等待ReadLine时更新C#Windows控制台应用程序中的当前行?

在C#中构建Windows控制台应用程序时,是否可以在等待readline时更新控制台中的行? 我目前的代码是: do { Console.Clear(); Console.WriteLine(“RA: ” + scope.RightAscension); Console.WriteLine(“Dec: ” + scope.Declination); Console.WriteLine(“Status: ” + scope.Slewing); System.Threading.Thread.Sleep(1000); } while (true);

按下某个键时,如何中断(不使用线程)console.readline?

让我解释一下,这就是我想要实现的目标: Enter name: F4-Quit 有没有一种方法可以显示下一行(F4-Quit)而没有readline在显示之前等待用户输入? 原因是我想,在任何时候退出,即使名称尚未输入(光标在等待),这在许多情况下非常有用,在这种情况下,有人在输入信息的过程中改变了主意并想要退出或返回。 如果这不可能会是什么方式呢? 谢谢!

在控制台上播放声音 – C#

我正在C#上编写一个Console应用程序,我希望在连续显示文本时播放声音。 这就是我所做的: static SoundPlayer typewriter = new SoundPlayer(“typewriter”); static public void print(string str, int delay) { Thread skipThread = new Thread(skipText); typewriter.PlayLooping(); textgap = delay; foreach (char c in str) { Console.Write(c); if (textgap != 0) Thread.Sleep(textgap); } typewriter.Stop(); } typewriter.wav导入到.cs文件旁边的项目中,我copy always选择copy always 。 当我运行此代码时,在开始播放声音时弹出错误说明Please be sure a sound file exists at the specified location. […]

将Unity DI与控制台应用程序配合使用

我试图让Unity与我的控制台应用程序一起工作,但是我尝试dependency injection的所有属性仍然设置为null。 这是我的代码: Program.cs中 namespace .Presentation.Console { class Program { static void Main(string[] args) { var mainThread = new MainThread(); } } } MainThread.cs namespace xxxx.Presentation.Console { public class MainThread { public IUnitOfWork UnitOfWork { get; set; } public IMapper Mapper { get; set; } public MainThread() { Mapper.RegisterMappings(); } } } App.config中 App.config设置为“始终复制” 在这种情况下,Mapper返回为null(我假设UnitOfWork也是如此) […]

在C#Console应用程序中,Pause键暂停显示输出。 我可以禁用它吗?

在C#Console应用程序中,按Pause键会冻结显示输出。 我可以禁用它吗? 我希望有一个处理Console.CancelKeyPress输入的Console.CancelKeyPress事件处理程序。

串行端口读取C#控制台

大家好,我是新来的,我听过很多关于这个网站的消息,它真的很有帮助。 希望你能帮助我! 我有一个非常简单的程序,其唯一目的是从串口读取并在C#的控制台窗口上打印2000次。 我只是在微控制器上转动一个可变电阻器 以下是代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO.Ports; namespace Testing_serial_v3._0 { class Program { static void Main(string[] args) { string buff; SerialPort port = new SerialPort(“COM4”, 9600, Parity.None, 8, StopBits.One); port.Open(); for (int i = 0; i < 2000; i++) { buff = port.ReadLine(); Console.WriteLine(buff); //Console.ReadLine(); } } […]

调用Console.ReadLine()的方法的C#unit testing

我想为一个名为ScoreBoard的类的成员函数创建一个unit testing,该类存储游戏中的前五名玩家。 问题是我为( SignInScoreBoard )创建测试的方法是调用Console.ReadLine()因此用户可以输入他们的名字: public void SignInScoreBoard(int steps) { if (topScored.Count < 5) { Console.Write(ASK_FOR_NAME_MESSAGE); string name = Console.ReadLine(); KeyValuePair pair = new KeyValuePair(name, steps); topScored.Insert(topScored.Count, pair); } else { if (steps < topScored[4].Value) { topScored.RemoveAt(4); Console.Write(ASK_FOR_NAME_MESSAGE); string name = Console.ReadLine(); topScored.Insert(4, new KeyValuePair(name, steps)); } } } 有没有办法插入十个用户,所以我可以检查是否存储了五个较少的移动(步骤)?