【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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一个多道批处理仅有p1p2_nx300h的缺点

    一个多道批处理仅有p1p2_nx300h的缺点(注:%0就是该batch文件的文件名 )%~dp0的意思是 更改当前目录为批处理文件的目录 比如你有个批处理a.bat在D:/qq文件夹下  a.bat内容为 cd/d%~dp0 在这里 cd/d%~dp0的意思就是cd/dd:/qq %0代表批处理本身 d:/qq/a.bat ~dp是变量扩充 d既是扩充到分区号 d: p就是扩充到路径 

    2022年9月16日
    0
  • VS2005透过SourceOffSite访问VSS2005的设置方法「建议收藏」

    小弟之前写了一篇VS2005透过Internet访问VSS2005的设置步骤,其实这个目的可以采用第三方软件工具SourceOffSite实现而且方法更简便,现将小弟试验的方法供大家参考。1。下载并安装SourceOffSite4.2(该工具分server,client两个程式),自己在网络上找下下载地址。安装部分也非常简单。2。设置Server部分,执行SourceOffSite4S

    2022年4月13日
    54
  • IDEA- idea代码调试debug

    IDEA有很多的快捷键,下面整理Debug的快捷键,方便自己使用!

    2022年2月26日
    49
  • 学术应用使用node-http-proxy集成谷歌学术「建议收藏」

    学术应用使用node-http-proxy集成谷歌学术「建议收藏」搞科研的同学肯定离不开谷歌学术,谷歌学术搜索是文献搜索下载一大利器。之前实验室开发了一款学术应用,遗留了历史问题,就是没有解决文献搜索的功能,而这个任务最后落在我的身上。我采用的方案就是集成谷歌学术,但是国内的网络环境,你懂的,自然状态下根本就访问不了谷歌学术的,你得翻墙才能访问。你不能期望使用你开发的学术应用都能翻墙访问谷歌学术(虽然搞科研的人电脑翻墙软件肯定都准备好了!),所以呢我还要给谷歌学术

    2022年8月31日
    3
  • sublimit text3 2021激活码【在线破解激活】

    sublimit text3 2021激活码【在线破解激活】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    66
  • 深浅copy

    python——赋值与深浅拷贝备注:此文为转发连接,初学编程的小伙伴都会对于深浅拷贝的用法有些疑问,今天我们就结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~预备知识一——

    2022年3月29日
    40

发表回复

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

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