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

  • 相关阅读:
    django集成django-xadmin
    Django设置 DEBUG=False后静态文件无法加载解决
    Django ORM必会的查询方法
    django admin-过滤器
    Django settings.py 中设置访问 MySQL 数据库【一种是直接在 settings.py 文件中直接写数据库信息,另一种是读文件获取数据库信息】
    django-admin之ModelAdmin最全解释
    SPL(Standard PHP Library 标准PHP类库)
    rsync 数据同步
    PHP 安装memcache.so 和memcached.so
    linux 安装memcached
  • 原文地址:https://www.cnblogs.com/gilbert/p/10262314.html
Copyright © 2011-2022 走看看