隐藏控制台窗口的方法

在我们做程序的过程中,往往都需要用到控制台的程序来做实验或者用作后台的一些小应用的时候我们通常能够用到控制台程序,而,很多时候我们不需要去展现他得窗口,如何去隐藏他得窗口呢?很简单……

首先先看一段简单的程序,这段程序就是我们用来去隐藏窗口的方法了!

#region 隐藏窗口
        [DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)]
        private static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);
        [DllImport("user32.dll", EntryPoint = "FindWindow", SetLastError = true)]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        public static void WindowHide(string consoleTitle)
        {
            IntPtr a = FindWindow("ConsoleWindowClass", consoleTitle);
            if (a != IntPtr.Zero)
                ShowWindow(a, 0);//隐藏窗口
            else
                throw new Exception("can‘t hide console window");
        }
        #endregion

  

这段代码里面调用windows的api,很简单的就能够实现隐藏窗口的方法,至于更细致的东西,还是查一下google吧!

调用的方法:

static void Main(string[] args)
        {
            try
            {
                Console.Title = "TestPmars"; //为控制台窗体指定一个标题,便于定位和区分
                WindowHide("TestPmars");
            }
            catch
            {
                Console.WriteLine("出错了");
            }
            Thread.Sleep(-1);
        }

  

很简单,Console.Title = "TestPmars",给控制台设定一个名字,之后将这个名字传给WindowHide就可以了!

其中我们用到的命名空间

using System.Runtime.InteropServices;

以上这些内容足以让我们实现隐藏窗口的目的了!

记在这里,分享给大家!

时间: 2024-08-26 09:39:39

隐藏控制台窗口的方法的相关文章

在控制台程序中隐藏控制台窗口

大家都知道,当编写一个win32 console application时,当运行此类程序的时候默认情况下会有一个类似DOS窗口的console窗口,但是有的时候我们只想在程序中运行一段功能代码,不希望显示这个console窗口,让代码执行完毕之后程序自动退出. 下面就介绍一下,如何隐藏win32 console application的console窗口 因为此种方法是通过设置编译器的链接开关来实现,所以让我们来看一下编译器的链接开关选项(也就是linker选项). 首先我们来看一下linke

MFC如何在有界面的应用程序中开启控制台窗口

在有界面的应用程序中开启控制台窗口有时候非常有用,尤其是在调试多线程应用程序中,由于通过断点的方式调试程序时会导致线程挂起从而导致各种难于预料的结果.这时候就可以通过开启控制台窗口往窗口输出信息来查看线程的运行情况,这比通过日志文件输出的方式更方便和实时.下面介绍两种开启控制台窗口的方法:1.通过AllocConsole()函数打开控制台窗口  AllocConsole();//打开控制台窗口  HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);/

Windows 隐藏控制台

#pragma comment( linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"" ) 在程序中加上如上语句,可以隐藏控制台窗口. 用VC编写的程序,运行的时候需要C/C++运行库的支持. 当我们运行一个程序时,连接器会首先寻找应用程序的启动函数. 以下内容为引用,因小A水平有限,不懂编译器连接开关,未能证实.但结果有效,内容应该是合理的. 引用: 如果你建立了一个console

隐藏控制台console application窗口

  如题,在windows上新建控制台应用程序的时候,怎么才能将console 黑窗口隐藏起来.   第一种方法: ::SetConsoleTitle(_T("test_exe")); HWND hwnd=::FindWindow(_T(""),_T("test_exe")); ::ShowWindow(hwnd,SW_HIDE); 不行,试了,不清楚为什么失败-. 窗口句柄抓到了,就是不明白为什么隐藏不了......⊙﹏⊙b汗 两种方法抓到的句

[转]隐藏基于对话框的MFC应用程序窗口的方法

隐藏基于对话框的MFC应用程序窗口的方法 (推荐这个方法,非常好用) 很多人可能会将窗口创建出来,然后用一个 ShowWindow(SW_HIDE) 的方法去隐藏窗口,当然这是可以做到隐藏的功能,但是有一点不足的地方就是窗口在隐藏之前会有一下短瞬的闪烁,而以下这种方法可以解决这种问题: 在 C***App::InitInstance() 的函数中将以下的这一段注释掉: C***Dlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); i

C# 控制台窗口的显示与隐藏

1. 定义一个Consolse帮助类,如下: [csharp] view plaincopy /// <summary> /// 控制台帮助类 /// </summary> public static class ConsoleHelper { /// <summary> /// 获取窗口句柄 /// </summary> /// <param name="lpClassName"></param> /// <

隐藏基于对话框的MFC应用程序窗口的方法

隐藏基于对话框的MFC应用程序窗口的方法 (推荐这个方法,非常好用) 很多人可能会将窗口创建出来,然后用一个 ShowWindow(SW_HIDE) 的方法去隐藏窗口,当然这是可以做到隐藏的功能,但是有一点不足的地方就是窗口在隐藏之前会有一下短瞬的闪烁,而以下这种方法可以解决这种问题: 在 C***App::InitInstance() 的函数中将以下的这一段注释掉: C***Dlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); i

c# 控制台应用程序怎么隐藏黑窗口

class Program     {         [DllImport("user32.dll", EntryPoint = "ShowWindow", SetLastError = true)]         static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);         [DllImport("user32.dll", EntryPoint = "Find

初识句柄操作(控制台窗口小实验)

今日学习了控制台使用句柄操作的方法. 我们都知道,使用iostream也可以向屏幕中输出语句. 但它们只能实现基本的输入输出 操作,对于控制台窗口界面的控制却无能为力,而且不能与stdio.h和conio.h友好相处,因为iostream和它们是C++两套不同的输入. 因此,我们需要句柄类来帮助我们完成这个操作. 下面直接上练习小代码,为贪食蛇清屏的小片段. 经一番查找,习得基本用法. 1 void clrscr(void) { 2 //控制台窗口信息类型 存有缓冲区大小 当前光标位置 窗口显示