如何在具有Windows应用程序输出类型的C#程序上显示控制台

用户名

我有一个C#控制台应用程序项目,其中输出类型设置为“ Windows应用程序”。这样一来,控制台不会在程序启动时闪烁。

但是,我也想允许一个帮助命令行参数,如果您使用“ /?”从命令行运行该程序,它将显示有关该程序的详细信息。作为一个论点。

有没有一种方法可以让程序作为Windows应用程序正常运行,但是如果传递了help参数,则显示一个控制台?

编辑-阅读此问题的答案和类似的答案后(此问题假定您正在使用控制台应用程序输出类型运行),我正在使用此解决方案。

  [DllImport(Kernel32_DllName)]
    private static extern bool AllocConsole();

    [DllImport("kernel32.dll")]
    static extern IntPtr GetConsoleWindow();

    [DllImport("user32.dll")]
    static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);

    const int SW_HIDE = 0;
    const int SW_SHOW = 5;

  static void Main(string[] args)
    {

        if(args.Contains("/?"))
        {
           AllocConsole();

           Console.WriteLine("helpText");
           Console.ReadLine();


           var handle = GetConsoleWindow();

          //Hides console
           ShowWindow(handle, SW_HIDE);
        }
 }
用户名

我没有找到一种完全按照您的要求进行操作的方法,但是您可以根据输入内容打开一个控制台。例如:

class Program
{
    private const string Kernel32_DllName = "kernel32.dll";

    [DllImport(Kernel32_DllName)]
    private static extern bool AllocConsole();
    static void Main(string[] args)
    {

        if (args[0] == "/")
        {
            AllocConsole();


            Console.WriteLine("Details");
            Console.ReadKey();
            //cases and such for your menu options
        }

这将打开一个控制台,如果项目的输出类型是Windows应用程序,则在运行命令后加上/即可使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在.NET 5.0控制台应用程序上的C#中检查Windows版本

读取多行并在C#控制台应用程序上拆分

如何在C#控制台应用程序中过滤文件类型,例如.exe

如何在 C# 控制台应用程序中显示模型列表

msys2如何显示非控制台应用程序的控制台输出?

如何在表单应用程序中显示控制台输出/窗口?

控制台应用程序如何在 Windows 10 核心输出包中添加?

编码评估应用程序:如何在 Angular 应用程序中运行带有输出的控制台

显示/隐藏C#控制台应用程序的控制台窗口

c#控制台应用程序按空格键而不在屏幕上显示

在WaitForExit C#控制台应用程序上终止命令时出现问题

C# 在控制台应用程序上异步下载多个文件时遇到问题

c#从控制台应用程序显示Windows窗体

如何在Windows下使用cmake在qt GUI应用程序中显示控制台

C#控制台应用程序,侧面有显示实时数据的表格

C#:从控制台应用程序更新 Windows 窗体上的标签文本

SlowCheetah在C#控制台应用程序上不起作用

如何在C#控制台应用程序中捕获ctrl-c(SIGINT)

C# 如何使用一些 WinForm 元素最好地管理基于控制台的 CLI 应用程序上的线程

如何在C ++中从控制台应用程序显示MFC对话框?

如何在c ++ / CLI应用程序中显示控制台?

如何使用C#控制台应用程序在Azure存储上生成Excel文件?

如何在C#的控制台应用程序中设置启动对象?

如何在控制台应用程序C#中访问SolidBrush

如何在后台运行 c# 控制台应用程序 .exe?

如何在控制台应用程序C#中打印值

如何在C#控制台应用程序中正确实现声音?

如何在控制台应用程序中同时写多个位置?C#

如何在 C# 控制台应用程序中跟踪用户输入?