背景:我正在努力为现有的WPF Windows应用程序添加命令行和批处理功能.当我在启动时检测到一些选项时,我禁止窗口出现,进行一些处理并立即退出.现在,因为没有UI,我想将一些消息输出到stdout/stderr.考虑以下代码:
namespace WpfConsoleTest
{
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
Console.WriteLine("Start");
System.Threading.Thread.Sleep(1000);
Console.WriteLine("Stop");
Shutdown(0);
}
}
}
Run Code Online (Sandbox Code Playgroud)
当我从命令行运行时,我希望以下输出:
Start
Stop
Run Code Online (Sandbox Code Playgroud)
但反而:
C:\test>WpfConsoleTest.exe
C:\test>
Run Code Online (Sandbox Code Playgroud)
但是,您可以重定向输出:
C:\test>WpfConsoleTest.exe > out.txt
C:\test>type out.txt
Start
Stop
Run Code Online (Sandbox Code Playgroud)
不幸的是,重定向到CON不起作用:
C:\test>WpfConsoleTest.exe > CON
C:\test>
Run Code Online (Sandbox Code Playgroud)
另一个问题是WpfConsoleTest.exe在启动后立即退出.所以:
C:\test>WpfConsoleTest.exe > out.txt & type out.txt
C:\test>
Run Code Online (Sandbox Code Playgroud)
但:
C:\test>WpfConsoleTest.exe > out.txt & ping localhost > nul & type out.txt
Start
Stop
Run Code Online (Sandbox Code Playgroud)
到目前为止,我能够提供的最佳解决方案是使用start /B /wait:
C:\test>start /B /wait WpfConsoleTest.exe …Run Code Online (Sandbox Code Playgroud) 我正在制作一个WPF应用程序,我想发布一个测试版的应用程序,因为我正在添加一个Button名为"debug",它实际上将显示/隐藏控制台窗口.每次事件发生后我都会在控制台上写相应的消息,这样可以帮助用户通过查看控制台上的消息来报告他们遇到的问题.
对不起背景故事(如果没用).我基本上需要知道如何在c#中动态显示/隐藏控制台窗口.
嗨,我知道如何写入控制台,但如果我在程序中写入控制台并从命令行调用我的程序,它将不会显示任何内容.
当我说Console.WriteLine或Console.Out.Writeline ir打印到调用它的命令提示符而不是其他地方时,我该怎么做呢?
我再一次知道怎么做Console.WriteLine所以它不是那样的:-p除非我做错了.
从我可以告诉它可能与Console.SetOut(TextWriter t)有关
这是一个WPF应用程序,我需要它将其数据发布到命令行,同时仍然在启动时保留GUI.我已经三次检查并且我的代码点击了打印行,我实际上可以看到正在打印到Visual Studio输出窗口的行,当我在没有VS的情况下手动运行它时,它不会显示在命令行中.
如果可能,我需要有条件地拥有控制台显示器.即,如果从命令行(或甚至使用命令参数)运行,则显示或发布到提示符,否则不显示.
我想要一些正确的方向,甚至是解决这个问题的方法,而且我很困难(我只是初学者/中级):
我正在尝试在我的应用程序中实现SSH.SSH后端工作正常等,但我被困在前端.WPF-Combination会给我一个足够的模拟控制台的解决方案吗?抛开一个完整的终端仿真,我很乐意将readline/writeline简单地写成一个看起来像控制台的东西:-)
我最好的方法是80x50单个字符网格,导致4000个单细胞,感觉就像一个完全矫枉过正.
另一个想法是制作一个控制台-Appl.绑定到另一个项目中的wpf窗口.但是......这是可能的,怎么样?