Tag: console application

检查控制台应用程序C#中是否按下了任何键

我需要检查控制台应用程序中是否按下了任何键。 键可以是键盘上的任何键。 就像是: if(keypressed) { //Cleanup the resources used } 我想出了这个: ConsoleKeyInfo cki; cki=Console.ReadKey(); if(cki.Equals(cki)) Console.WriteLine(“key pressed”); 它适用于除修改键以外的所有键 – 如何检查这些键?

将C#控制台应用程序位置设置为辅助屏幕

概述:我正在开发一个涉及WCF和多种类型客户端的项目。 我创建了几个测试客户端,并且我有一个托管在控制台应用程序中的WCF。 这导致我在调试时有多个应用程序窗口(我目前有4个),每次运行它时我都必须在多个屏幕上安排它们(我有2个)。 问:我想知道有没有办法将Console应用程序的位置设置到辅助屏幕,而无需一直拖动它。

如何重新启动Console应用程序?

当用户按“R”时,我需要重新启动应用控制台。 我有这个 Console.WriteLine(message, “Rebuild Log Files” + ” Press Enter to finish, or R to restar the program…”); string restar = Console.ReadLine(); if(restar.ToUpper() == “R”) { //here the code to restart the console… } 谢谢

使用Console.Writeline()或Console.Write()时,multithreadingC#控制台应用程序中偶尔会挂起

我编写了一个控制台应用程序,它使用console.write和console.writeline来提供一些日志记录。 该应用程序是一个服务器应用程序,它使用异步beginacceptconnection()和beginread()(套接字)进行通信。 偶尔我会得到挂起的报告,从有限的调试我可以做到,我能够看到问题是Console.Writeline()或Console.write()。 作为multithreading我一直小心锁定日志记录类,所以只有一个线程可以一次记录消息…..当我发现挂起时,我得到的是线程阻塞锁和VS报告控件已经传递到Console.Write,它正在等待它回来….它永远不会。 几天前我得到了另一个失败的报告,但这次是在启动时….没有asynch连接尚未启动(主线程确实产生了一个线程启动),我被发送了一张图片.. …见下文。(我添加了开始和结束关键部分线以防止这种情况,但它没有) // Logging Class public class Logging { // Lock to make the logging class thread safe. static readonly object _locker = new object(); public delegate void msgHandlerWriteLineDelegate(string msg, Color col); public static event msgHandlerWriteLineDelegate themsgHandlerWriteLineDelegate; public delegate void msgHandlerWriteDelegate(string msg, Color col); public static event msgHandlerWriteDelegate themsgHandlerWriteDelegate; public static […]

在控制台应用程序中处理行为,自定义function等的基类?

我有一个像这样的控制台应用程序: public enum TypeMessage : int { Log, Success, Warning, Alert } class Program { static void Main(string[] args) { //do stuff WriteMessage(“Sucess …. etc”, TypeMessage.Success); } static void WriteMessage(string message, TypeMessage typeMessage = TypeMessage.Log) { switch (typeMessage) { case TypeMessage.Success: Console.ForegroundColor = ConsoleColor.Green; break; case TypeMessage.Warning: Console.ForegroundColor = ConsoleColor.Yellow; break; case TypeMessage.Alert: Console.ForegroundColor = […]

sql job每隔一定时间运行并执行一个控制台应用程序

我试图写一个SQL作业每10分钟运行一次,并执行我用C#编写的控制台应用程序。 如果有人可以提供帮助,那将非常有帮助。

System.Drawing.DrawString()长字符串的奇怪包装

更新:我想用帮助我解决问题的代码回答我自己的问题。 它是由布拉德利提交的,但调整为我工作,也可以帮助其他人。 但是在重新开放之前我无法回答。 链接的副本提供了一种方法,但没有代码。 基于代码的回答这个问题对社区有帮助 我在控制台应用程序内部的图像上绘制的文本格式有些轻微问题。 我试图绘制的文字是: BAS2016 = PTR = E30BAS2010 =(S20)$ W30 $ PTO2016 = N5W20N5(W20N10)(S10W20)S5W5S5E10N10(E15N5)(S5E15)S10E25 $ W25N10(W15N5)(S5W15)S10W10S15BAS2020 = S15PTO2013 = S5E20S5(E20S10)(N10E20)N5E5N5W10S10( W15S5)(N5W15)N10W25 $ E25S10(E15S5)(N5E15)N10E10N15W65 $ E65N15 $。 我的方法调用是: RectangleF rectF = new RectangleF(0, 0, 320, 320); graphics.DrawString(fullTrav, defaultFont, Brushes.Black, rectF); 那个输出是: 此输出仅适用于Rectangle的默认StringFormat 。 它包装很好,但它似乎以不同的方式处理字符并在边框之前推送换行符,具体取决于即将发生的字符。 我试过StringFormatFlag.FitBlackBox无济于事,但没有经过每一个标志。 我想得到的是: 这个期望的输出看起来更像是方形/矩形并且具有较少的自动换行格式。 有没有办法格式化矩形,以便它不会给文字特殊处理和自动换行纯粹基于文本命中矩形边框的概念?

控制台应用程序启动另一个无法访问的流程环

我有一个VB6可执行文件,它访问一些系统环境变量。 我已经实现了一个.NET控制台应用程序,它检查这些环境变量是否存在,如果需要的话创建它们,然后通过调用Process.Start运行VB6应用程序。 这样做,VB6应用程序找不到环境变量,它说它们不存在。 如果我从Windows资源管理器运行VB6应用程序,它工作正常,可以找到变量。 所以似乎VB6应用程序在.NET控制台应用程序的上下文中运行,无法访问系统环境变量! 用于设置环境的代码vars .NET Cosnole app: foreach(var varObject in Variables) { var envVar = Envrionment.GetEnvironmentVariable(varObject.Name , EnvironmentVariableTarget.Machine); if(string.IsNullOrEmpty(envVar) { Environment.SetEnvironmentVariable(varObject.Name,varObject.Value, EnvironmentVariableTarget.Machine); } } 从.NET Cosnole应用程序运行VB6应用程序的代码: var processInfo = new ProcessStartInfo(VB6ApplicationFilePath); processInfo.UseShellExecute = true processInfo.WindwoStyle= ProcessWindowStyle.Hidden; Process.Start(processInfo);

如何处理使用控制字符的控制台应用程序的输出?

我想调用一个可执行文件(在我的例子中,这是PNGOUT.exe)并从stdout获取其输出。 但事实certificate它很棘手 – 应用程序使用某种控制字符来替换以前打印的输出(显示进度),C#类愉快地记录它们,当我想分析输出字符串时,我会非常头疼。 (我花了一段时间才弄清楚我的字符串发生了什么) 我用以下方法调用可执行文件: public static string RunPNGOut(string pngOutPath, string target) { var process = new Process { StartInfo = { UseShellExecute = false, RedirectStandardOutput = true, CreateNoWindow = true, FileName = pngOutPath, Arguments = ‘”‘ + target + ‘”‘ } }; process.Start(); var result = process.StandardOutput.ReadToEnd(); process.WaitForExit(); return result; } 我需要使用不同的方法来捕获控制台中的文本的最终状态,或者以某种方式去除result的控制字符(不是简单地删除它们,而是将它们“应用”到字符串以实现最终外观)。 怎么做到呢?

C# – 控制台击键

我想比较在控制台中按下的键和左箭头键如果它们相等意味着按下的键是左箭头键,键将控制台的背景颜色改为青色…… 我不知道如何设置If语句,因为我不知道如何在控制台中比较键。 using System; namespace ConsolePaint { class MainClass { public static void Main (string[] args) { ConsoleKeyInfo keypress; keypress = Console.ReadKey(); // read keystrokes if ( keypress.KeyChar == ConsoleKey.LeftArrow ) { Console.BackgroundColor = “Cyan”; } } } }