【c#】控制台程序的显示和隐藏「建议收藏」

【c#】控制台程序的显示和隐藏「建议收藏」【c#】控制台程序的显示和隐藏

大家好,又见面了,我是你们的朋友全栈君。

    在项目开发的过程中,为了方便调试,利用控制台打印出一些提示信息,当安装到现场的时候,我们担心工作人员手误关掉了程序,所以将控制台隐藏,让程序在后台跑。下面是具体的显示和隐藏的代码:

        /// <summary>  
        /// 控制台帮助类  
        /// </summary>  
        public static class ConsoleHelper
        {
            /// <summary>  
            /// 获取窗口句柄  
            /// </summary>  
            /// <param name="lpClassName"></param>  
            /// <param name="lpWindowName"></param>  
            /// <returns></returns>  
            [DllImport("user32.dll", SetLastError = true)]
            private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

            /// <summary>  
            /// 设置窗体的显示与隐藏  
            /// </summary>  
            /// <param name="hWnd"></param>  
            /// <param name="nCmdShow"></param>  
            /// <returns></returns>  
            [DllImport("user32.dll", SetLastError = true)]
            private static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);

            /// <summary>  
            /// 隐藏控制台  
            /// </summary>  
            /// <param name="ConsoleTitle">控制台标题(可为空,为空则取默认值)</param>  
            public static void hideConsole(string ConsoleTitle = "")
            {
                ConsoleTitle = String.IsNullOrEmpty(ConsoleTitle) ? Console.Title : ConsoleTitle;
                IntPtr hWnd = FindWindow("ConsoleWindowClass", ConsoleTitle);
                if (hWnd != IntPtr.Zero)
                {
                    ShowWindow(hWnd, 0);
                }
            }

            /// <summary>  
            /// 显示控制台  
            /// </summary>  
            /// <param name="ConsoleTitle">控制台标题(可为空,为空则去默认值)</param>  
            public static void showConsole(string ConsoleTitle = "")
            {
                ConsoleTitle = String.IsNullOrEmpty(ConsoleTitle) ? Console.Title : ConsoleTitle;
                IntPtr hWnd = FindWindow("ConsoleWindowClass", ConsoleTitle);
                if (hWnd != IntPtr.Zero)
                {
                    ShowWindow(hWnd, 1);
                }
            }
        }

    分析代码我们可以看出,控制显示和隐藏的关键代码是

ShowWindow(hWnd, 0);

    参数为0:隐藏;为1:显示;为2:最小化。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105675.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • GCC命令编译

    GCC命令编译GCC命令

    2022年10月13日
  • fec基础_普通独立基础

    fec基础_普通独立基础 昨天休息了一下,思考一下可以研究的点,觉得这个fec还可以,就找了一点资料研究一下。 先跑点题,闲扯一会。在找资料的过程中,能找到的资料就很少,就有点感叹。科研为什么弱呢?可以看下90年代的论文,那水平略等于今天的一篇博客。这是积贫积弱到现在。 [1]中有段代码,求解伽罗华域的生成空间的。举的例子是GF(256),使用的本原多项式P(x)=x8+x5+x3+x2+1P(x)=x^8+x^5…

    2022年8月11日
  • LIGHT LIFE 简述

    LIGHT LIFE 简述

    2022年3月13日
  • Java多线程常用面试题(含答案,精心总结整理)

    Java多线程常用面试题(含答案,精心总结整理)Java并发编程问题是面试过程中很容易遇到的问题,提前准备是解决问题的最好办法,将试题总结起来,时常查看会有奇效。现在有T1、T2、T3三个线程,你怎样保证T2在T1执行完后执行,T3在T2执行完后执行?这个线程问题通常会在第一轮或电话面试阶段被问到,目的是检测你对”join”方法是否熟悉。这个多线程问题比较简单,可以用join方法实现。核心:thread.Jo

    2022年7月15日
  • EnableEventValidation 是什麽東東?

    EnableEventValidation 是什麽東東?
    回发或回调参数无效。在配置中使用或在页面中使用<%@PageEnableEventValidation="true"%>启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用ClientScriptManager.RegisterForEventValidation方法来注册回发或回调数据以进行验证。
    说明:执行

    2022年7月26日
  • linux goland21.2.4激活【最新永久激活】

    (linux goland21.2.4激活)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月30日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号