zoukankan      html  css  js  c++  java
  • 在C#中,Windows Console控制台 设置控制台标题、禁用关闭按钮、关闭快速编辑模式、插入模式

    • 设置控制台标题
    • 禁用关闭按钮
    • 关闭快速编辑模式
    • 关闭插入模式

    设置控制台标题、禁用关闭按钮

    #region 设置控制台标题 禁用关闭按钮
    
            [DllImport("user32.dll", EntryPoint = "FindWindow")]
            extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
            [DllImport("user32.dll", EntryPoint = "GetSystemMenu")]
            extern static IntPtr GetSystemMenu(IntPtr hWnd, IntPtr bRevert);
            [DllImport("user32.dll", EntryPoint = "RemoveMenu")]
            extern static IntPtr RemoveMenu(IntPtr hMenu, uint uPosition, uint uFlags);
    
            static void DisbleClosebtn()
            {
                IntPtr windowHandle = FindWindow(null, "控制台标题");
                IntPtr closeMenu = GetSystemMenu(windowHandle, IntPtr.Zero);
                uint SC_CLOSE = 0xF060;
                RemoveMenu(closeMenu, SC_CLOSE, 0x0);
            }
            protected static void CloseConsole(object sender, ConsoleCancelEventArgs e)
            {
                Environment.Exit(0);
            }
            #endregion
    View Code

    关闭快速编辑模式、插入模式

    #region 关闭控制台 快速编辑模式、插入模式
            const int STD_INPUT_HANDLE = -10;
            const uint ENABLE_QUICK_EDIT_MODE = 0x0040;
            const uint ENABLE_INSERT_MODE = 0x0020;
            [DllImport("kernel32.dll", SetLastError = true)]
            internal static extern IntPtr GetStdHandle(int hConsoleHandle);
            [DllImport("kernel32.dll", SetLastError = true)]
            internal static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint mode);
            [DllImport("kernel32.dll", SetLastError = true)]
            internal static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint mode);
    
            public static void DisbleQuickEditMode()
            {
                IntPtr hStdin = GetStdHandle(STD_INPUT_HANDLE);
                uint mode;
                GetConsoleMode(hStdin, out mode);
                mode &= ~ENABLE_QUICK_EDIT_MODE;//移除快速编辑模式
                mode &= ~ENABLE_INSERT_MODE;      //移除插入模式
                SetConsoleMode(hStdin, mode);
            }
            #endregion
    View Code

    调用

    static void Main(string[] args)
    {
        Console.Title = "控制台标题";
        DisbleQuickEditMode();
        DisbleClosebtn();
        Console.CancelKeyPress += new ConsoleCancelEventHandler(CloseConsole);
    }

    部分内容 参考文章如下:

    https://blog.csdn.net/blizzardlyk/article/details/44810015

  • 相关阅读:
    Docker用途 & 和tomcat的区别
    Docker 部署war包项目
    docker安装Tomcat并部署war项目
    使用Docker部署war包项目
    集线器和交换机的区别?
    Bootstrap3基础 form-inline 输入框在同一行
    Bootstrap3基础 form-horizontal 表单元素横向布局 简单示例
    Bootstrap3基础 form-group 输入框之间出现间隔
    Bootstrap3基础 dropdown divider 下拉列表中的分割线
    Bootstrap3基础 form-control 圆角的输入框,光标放入后边框变色
  • 原文地址:https://www.cnblogs.com/gilbert/p/10262314.html
Copyright © 2011-2022 走看看