在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

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

#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

调用

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

部分内容 参考文章如下:

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

原文地址:https://www.cnblogs.com/gilbert/p/10262314.html

时间: 2024-11-10 01:30:19

在C#中,Windows Console控制台 设置控制台标题、禁用关闭按钮、关闭快速编辑模式、插入模式的相关文章

c语言编程设置控制台字体颜色

一.设置字体颜色: 1. 0 = 黑色       8 = 灰色 1 = 蓝色       9 = 淡蓝色 2 = 绿色       A = 淡绿色 3 = 浅绿色     B = 淡浅绿色 4 = 红色       C = 淡红色 5 = 紫色       D = 淡紫色 6 = 黄色       E = 淡黄色 7 = 白色       F = 亮白色 #include <stdlib.h> system("color 2");system("color F&

javascript:console对象与控制台

console 对象与控制台 console 对象 console对象是 JavaScript 的原生对象,它有点像 Unix 系统的标准输出stdout和标准错误stderr,可以输出各种信息到控制台,并且还提供了很多有用的辅助方法. console的常见用途有两个. 调试程序,显示网页代码运行时的错误信息. 提供了一个命令行接口,用来与网页代码互动. console对象的浏览器实现,包含在浏览器自带的开发工具之中.以 Chrome 浏览器的"开发者工具"(Developer Too

python之设置控制台字体颜色

# 设置控制台输出字体颜色 # 格式:\033[显示方式;前景色;背景色m # 采用终端默认设置:\033[0m # 红色字体 print('\033[1;31m') print('*' * 10) print('hello world!') print('*' * 10) print('\033[0m') # 绿色字体 print('\033[1;32m' + 'green' + '\033[0m') # 蓝色字体 print('\033[1;34m' + 'blue' + '\033[0m'

在网页中创建自己的调试控制台

在网页中创建自己的调试控制台 <html> <head> <title>caller</title> <script type="text/javascript"> function DebugConsole(){ //调试对象构造函数 var consoleElem=document.createElement("div"); //创建一个div元素 consoleElem.id="debug&

console.debug()浏览器控制台打印输出 仅仅在支持console的浏览器下打印

console.debug()浏览器控制台打印输出 仅仅在支持console的浏览器下打印 var util = {}; /** * 工具类 */ util = new function() { /** * 控制台打印输出 仅仅在支持console的浏览器下打印 * @param info 信息打印 */ this.debug = function(info){ try{ if(console != undefined && console != null && conso

Tomcat日志、项目中的log4j日志、控制台——我的日志最后到底跑哪去了?

1.Tomcat自带日志功能,即时你的项目中有log4j也不会影响到Tomcat自己记录日志. 2.你的项目中的log4j中的日志指定打印到什么地方(控制台或者文件),便会打印到什么地方,和Tomat日志无关. --如果你项目中的log4j指定打印到控制台,并且你开启的tomcat有控制台,那么这个时候你可以在控制台观察到日志. --如果你用log4j来处理了Tomcat的日志(具体需要你自己配置tomcat的配置文件),那么Tomcat便会使用log4j来打印,但是这和你项目中的log4j仍然

console.debug()浏览器控制台打印输出 只在支持console的浏览器下打印

console.debug()浏览器控制台打印输出 只在支持console的浏览器下打印 var util = {}; /** * 工具类 */ util = new function() { /** * 控制台打印输出 只在支持console的浏览器下打印 * @param info 打印信息 */ this.debug = function(info){ try{ if(console != undefined && console != null && console

4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台。 (2)把数组中的数字放到当前文件夹的numArr.txt文件中

package cn.it.text; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; /* * 4.产生10个1-100的随机数,并放到一个数组中 (1)把数组中大于等于10的数字放到一个list集合中,并打印到控制台. (2)把数组中的数字放到当前文件夹的number.txt文件中 */ public class Test4 { public static void main

vs2008中使用gdi+的设置

vs2008中使用gdi+ 1.新建一个mfc工程 2.在stdafx.h文件中加入以下几行语句:#include <gdiplus.h>                //#pragma comment(lib, "gdiplus.lib") //在工程属性中添加亦可using namespace Gdiplus;            //使用GDI+的命名空间, 若不用的话每次使用Gdiplus时均加上命名空间亦可 3.修改App类在App类(以下例子中为CTestA