Tag: 控制台

如何从服务C#捕获控制台输出?

我们有一个部署到远程客户系统的C#服务。 应用程序将大量“诊断”信息写入控制台(即Console.WriteLine())。 该服务不是“做它应该做的事”。 我们如何从另一个应用程序中的服务捕获控制台输出? WinForm版本可以在客户位置加载应用程序。 不幸的是,它正常运作。 更新: 我们可以更改服务的更改,但此时不希望进行重大更改。 我们也登录MSMQ,但仅限于“重要”事件。 此服务确实与MSMQ交互以进行正常操作。 或者,至少,它应该。 当WinForm版本的时候,该服务似乎没有从MSMQ中提取项目。 因此,编写发送到控制台的消息可能会有问题。

防止第三方组件的exception崩溃整个应用程序

我正在编写一个依赖于某些第三方DLL的multithreading应用程序。 我的问题是,当使用第三方库中的对象时,如果它在运行时引发exception,我无法捕获它并且它会冒泡并杀死整个应用程序。 我有许多不同的线程,每个线程使用来自此第三方库的自己的对象,我需要使用该对象副本的线程能够捕获并处理exception。 根据我所读到的内容,似乎第三方库实际上是在制作自己的线程并允许未捕获的exception。 .NET 2.0+行为允许这些exception终止整个应用程序。 我知道AppDomain.CurrentDomain.UnhandledException,但这不允许您阻止应用程序关闭。 作为参考,我正在.NET 4.0中编写一个控制台应用程序。 有没有人有任何解决方案/建议来阻止这些exception杀死我的应用程序?

检查C#中的标准输入

我正在编写一个小命令行实用程序,其目的是解析另一个实用程序的输出。 我希望它可以通过两种方式调用: c:\> myutility filewithoutput.txt 要么, c:\> otherutility -args | myutility 所以,基本上,标准或文件参数。 我对此的第一次尝试看起来像这样: TextReader reader; if (args.Length > 1) { reader = new StreamReader(new FileStream(args[1], FileMode.Open)); } else { reader = Console.In; } Process(reader); 文件参数工作正常,并将实用程序的输出传递给我的实用程序工作正常,但如果您只是正常调用它(没有参数和没有管道数据),它会挂起。 或者说,它阻止等待从标准读取。 我的第二稿看起来像这样: TextReader reader; if (args.Length > 1) { reader = new StreamReader(new FileStream(args[1], FileMode.Open)); } else { if(Console.KeyAvailable) { […]

如何执行非阻塞System.Beep()?

在C#中,我可以执行Console.Beep()。 但是,如果指定的持续时间为1000或1秒,则在第二行通过之前不会执行下一行代码。 有没有办法以非阻塞的方式执行Console.Beep(),所以它会继续发出蜂鸣声并仍然继续执行下面的代码同时发出哔哔声?

正确的方法来实现C#控制台应用程序?

将命令行工具实现和构建为C#控制台应用程序的正确方法是什么? 需要解决的问题包括正确解析命令行变量以及输出文本的正确方法。 虽然Console.WriteLine()是输出最明显的选择,但是应该选择写入标准错误流,.Error,.SetErrorStream等的情况是什么? 在将正确的返回代码返回给调用命令时,应用程序退出的正确方法是什么? 如何实现CancelKeyPress事件来中断程序? 它是否仅在单独线程上发生异步操作时使用? 是否有一个简明的C#命令行工具编程指南,或者更好的开源项目或模板,我可以使用它来正确实现一个相对简单的工具?

使用switch case语句的问题

我的代码如下。 基本上,我正在读取excel文件并将其内容存储到对象数组中。 然后,我使用switch case语句来执行不同的操作。 检查下面的代码: – using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using System.Data; using System.Drawing; using System.ComponentModel; using Excel = Microsoft.Office.Interop.Excel; using Microsoft.Office.Interop.Excel; namespace Excel1 { class Program { public static void Main(string[] args) //public void ExcelOps() { //string str; Excel.Application xlApp = new Excel.Application(); Excel.Workbook xlWorkbook = xlApp.Workbooks.Open(@”D:/WebServiceTemplate.xlsx”); Excel._Worksheet […]

c#console在winform里面

我有一个学校项目,我需要创建一个Windows窗体应用程序。 但就我而言,我需要创建一个控制台应用程序。 现在我可以通过一个按钮从一个窗口打开一个控制台,而一些代码我并不完全理解。 但是可以在打开win-form的同时打开控制台。 2.可以将控制台固定在胜利forms上。 (就像一个图像框。你创建了一些控制台留在里面的区域/盒子。 如何“编程”控制台? 而不是通过项目中创建的标准program.cs。 如果你能帮我解决这个问题会很好,现在正在寻找好几天…… 非常感谢!

关于从VBScript返回值到.NET的问题

我正在尝试设置一个能够从.NET运行VBScript文件的应用程序(请参阅此处 ),并且大部分设置都很好,但我想测试一下,所以我需要能够从我的数据中返回数据VB脚本。 我发现我可以使用WScript.Quit([ErrorCode])来获取整数值,但是返回字符串呢? 是否可以将它们提供给DataReceivedEventHandler? 或者我需要看一个不同的方法? 谢谢。

使用自定义控制台颜色

要使用与ConsoleColor提供的颜色不同的颜色,我实现了代码,您可以在此处找到p / invoke 。 这个解决方案工作正常,我可以使用我想要的每个颜色/颜色代码。 但CONSOLE_SCREEN_BUFFER_INFO_EX只包含几种不同的颜色。 如果我将例如ConsoleColor.White更改为Color.LimeGreen并使用此颜色编写文本,则会重新着色,如果我稍后将ConsoleColor.White更改为另一种颜色。 例如: Console.ForegroundColor = ConsoleColor.White; Console.WriteLine(“White text”); //text is white Console.ReadKey(true); ConsoleExtender.SetScreenColors(Color.Goldenrod, Color.Black); Console.WriteLine(“Goldenrod text”); //both lines are goldenrod Console.ReadKey(true); ConsoleExtender.SetScreenColors(Color.LimeGreen, Color.Black); Console.WriteLine(“LimeGreen text”); //all three lines are limegreen Console.ReadKey(true); 是否可以在运行时更改颜色,而无需重新显示已经可见的文本?

始终将Console.ReadLine保留在最后一行

我有一个用C#编写的应用程序,它通过while(true)循环和Console.ReadLine连续获取用户的命令。 我也有各种后台操作,通过控制台报告。 查看这个简单的例子: class Program { static void Main(string[] args) { new Messager(1000 * 2.5f); new Messager(1000 * 3); while (true) { Console.ReadLine(); } } } public class Messager { Timer Timer; public Messager(double interval) { this.Timer = new Timer(interval); this.Timer.Elapsed += (sender, e) => { Console.WriteLine(“message from ” + this.Timer.Interval); }; this.Timer.Start(); } } […]