Tag: windows console

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

我想调用一个可执行文件(在我的例子中,这是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的控制字符(不是简单地删除它们,而是将它们“应用”到字符串以实现最终外观)。 怎么做到呢?

如何将特殊字符(0x80..0x9F)写入Windows控制台?

我想要这个代码: System.Console.Out.WriteLine (“œil”); 在我的测试程序中显示œil而不是oil 。 在我的系统上, Console.OutputEncoding默认设置为Western European (DOS) ( CodePage设置为850, WindowsCodePage设置为1252)。 字符集包含特殊的OE和oe diphtongs(可以在Windows-1252上的维基百科文章中看到),但不知何故,我怀疑ISO-8859-1集中找不到的字符被丢弃/替换。 诸如â , ç等字符在控制台上正确显示,但扩展0x80 … 0x9F范围内的任何字符都没有。 如何在控制台上正确显示它们?

有可能伪造windows console api吗?

我已经在c#中编写了一个ssh服务器,我认为将PowerShell作为shell连接是很好的。 我已经尝试了两种方法来使其正常工作,但两者都远非完美。 这是我尝试过的: 启动powershell.exe并重定向它的std(in / out)。 这不能很好地工作,因为powershell.exe检测到它被重定向,改变它的行为。 更重要的是,它期望输入数据在stdid而不是命令上。 所以它使用控制台api来读取命令。 在“包装器”应用程序中托管powershell。 这具有能够向powershell提供“控制台”实现的优点(通过PSHostRawUserInterface)。 这样做效果更好,但您仍然可以调用命令(主要是真正的控制台应用程序),例如“… | more”,希望能够使用控制台api,然后尝试从包装器进程的控制台读取。 所以我想做的是有一组函数替换控制台应用程序使用的常规控制台输入/输出函数,所以我可以处理它们。 但这似乎相当激烈,以至于成为一个糟糕的设计理念(imo)。 现在我的想法是通过发送具有本机/ Pinvoke函数(如WriteConsoleInput)的相关键来操作控制台。 我认为有可能以这种方式伪造控制台。 但我不知道如何“读取”控制台上发生的事情。 还要记住,它是一个服务,所以最好它不应该产生一个真正的控制台窗口,尽管可能在Windows会话0中不会显示并且无关紧要。

Application.exe不是有效的Win32应用程序错误

我编写了一个Console应用程序,客户端试图在他们的Windows Server 2003 R2 machine上运行它,他们收到了错误消息。 如果我去Build -> Configuration管理器,我的所有项目都设置为”Any CPU”平台和配置 “Release” 还有什么我可能错过的? 他们不想通过双击实际运行控制台应用程序,他们希望将其提供给Windows计划任务,以便它可以在特定时间将其拾取并运行

控制台窗口的输出是否有限制?

码: 该程序检查输入的2个数字是否可以被数字2 – 9整除,并显示剩余的可分数(不包括被检查的数字)。 static void Main(string[] args) { for (int i = 2; i < 10; i++) { Challenge(2, 6, i); } Console.ReadLine(); } static void Challenge(int num1, int num2, int Divisor) { int sum = num1 + num2; bool SumDivisible = sum % Divisor == 0; bool num1Divisible = num1 % Divisor == […]

更多ConsoleColors的C#库?

我一直在编写控制台应用程序,并注意到控制台(例如cmd.exe)支持RGB颜色,但.NET的“Console”类不支持。 有没有人知道在C#中允许控制台应用程序使用RGB颜色的库?

HtmlAgilityPack和Windows 8 Metro应用程序

我正在尝试使用HtmlAgilityPack与Windows 8 Metro Apps(Windowsapp store应用)配合使用。 我已经成功地在Windows控制台应用程序(C#)中写出了我需要的所有代码,它可以很好地解析我需要的HTML并返回我需要的所需字符串。 // Create a new HtmlDocument and load the incoming string HtmlDocument menu = new HtmlDocument(); menu.OptionUseIdAttribute = true; menu.LoadHtml(response); HtmlNode nameToRemove = menu.DocumentNode.SelectSingleNode(“//*[@id=\”maincontent_0_contentplaceholder_0_lblHall\”]”); 我的问题是DocumentNode.SelectSingleNode调用。 我收到以下错误: 错误2’HtmlAgilityPack.HtmlNode’不包含’SelectSingleNode’的定义,并且没有可以找到接受类型’HtmlAgilityPack.HtmlNode’的第一个参数的扩展方法’SelectSingleNode’(您是否缺少using指令或程序集引用?) 我确认我所有的引用设置与我在控制台应用程序中完全相同,但我无法使其工作。 根据HtmlAgilityPack Twitter帐户,在版本1.4.5中添加了对Windows 8 Metro / Windows Phone 8的支持。 我仔细检查了我的NuGet包管理器并安装了1.4.6。 在Windows 8应用程序的HtmlDocument中,我是否需要通过XPath选择节点? 任何建议都将受到高度赞赏。 谢谢! 编辑:任何人都可以帮我用Linq查询获得相同的结果。 我不确定我会怎么做。