首页 > 编程语言 >[C#] 禁用控制台关闭按钮

[C#] 禁用控制台关闭按钮

时间:2023-12-21 17:34:35浏览次数:41  
标签:IntPtr Console C# 禁用 static 关闭 按钮 控制台

禁用控制台关闭按钮

    internal class Program

    {

        [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);

        /// <summary>

        /// 禁用关闭按钮

        /// </summary>

        static void closebtn()

        {

            IntPtr windowHandle = FindWindow(null, "AutoTecon数采系统");//名称要一致

            IntPtr closeMenu = GetSystemMenu(windowHandle, IntPtr.Zero);

            uint SC_CLOSE = 0xF060;

            RemoveMenu(closeMenu, SC_CLOSE, 0x0);

        }

        static void Main(string[] args)

        {

            Console.Title = "AutoTecon数采系统";

            closebtn();

            Console.CancelKeyPress += new ConsoleCancelEventHandler(CloseConsole);

            Console.WriteLine("Starting...");

            Console.WriteLine("退出请按 Ctrl+C ");

            /// <summary>

            /// 关闭时的事件

            /// </summary>

            /// <param name="sender">对象</param>

            /// <param name="e">参数</param>

            static void CloseConsole(object sender, ConsoleCancelEventArgs e)

            {

                Environment.Exit(0);

                //return;

            }

}

 

标签:IntPtr,Console,C#,禁用,static,关闭,按钮,控制台
From: https://www.cnblogs.com/webenh/p/17919713.html

相关文章

  • cmd命令行设置 windows 设置环境变量
    设置用户级别的环境变量::设置新参数JAVA_HOME1setxJAVA_HOME1"c:\test";exit;echo"%JAVA_HOME1%";::追加参数内容JAVA_HOME1setxJAVA_HOME1"%JAVA_HOME1%;c:\test2\;";exit;echo"%JAVA_HOME1%";::追加到Pathsetxpath"%pat......
  • php 在laravel中集成grpc
    在laravel中集成使用grpc一、安装:1、macOSphp扩展:peclinstallgrpc,peclinstallprotobufprotocbuf:brewinstallprotobufetcd:brewinstalletcd2、ubuntu:php扩展:peclinstallgrpc(如果遇到[Makefile:1038:src/core/lib/comp......
  • Pytorch模型结构修改
    1.Var方差在pytorch中的差别:tlist=input.tolist()print(input)print(np.mean(tlist),np.var(tlist))print(torch.mean(input),torch.var(input))可以看到numpy与torch求出来的**Var**与**Mean**有差别原因:如下图为torch.var官网描述,其中存在一个矫正correctio......
  • cookie和session的一些疑惑以及ai解答
    我:那么当浏览器关闭的时候,当再次访问这个地址的时候,为什么之前设置的cookie没有被删除掉?而且按照你说的这次可能会生成一个新的sessionID,那么cookie里面的其他数据,它是如何获取上一次的cookie的信息,而且它是如何知道是这个客户端访问的?而不是其他客户端?AI:当浏览器关闭时,是否删......
  • 网盟广告中的CPA、CPC、CPI、CPM、CPS是什么意思?
    在网盟广告中,CPA、CPC、CPI、CPM、CPS这些术语是什么意思?其实它们是不同类型的广告结算模式,我们可以从它们的英文全称去理解其含义。1.CPA(Cost Per Action)CPA是按用户行为结算,例如下载、安装、购买、订阅等,具体行为看广告主要求。由于CPA模式主要看广告投放的实际效果而不是看广......
  • CentOS7开启Firewalld防火墙日志记录获取被拦截的IP
    问题场景:在实际生产环境时使用该方法进行ES数据库白名单访问控制,但遇到业务侧反馈无法访问到ES数据库端口,需要加入到白名单,但业务侧用的IP业务侧无法准确给出于是通过如下面的方法解决这个问题1、firewalld的默认配置是不记录日志firewall-cmd--get-log-denied可以看到默认是off......
  • CentOS7下安装著名商业漏洞扫描工具Nexpose_6.6.156
    Nexpose简单介绍Nexpose是Rapid7出品,一款著名的、极佳的商业漏洞扫描工具。跟一般的扫描工具不同,Nexpose自身的功能非常强大,可以更新其漏洞数据库,以保证最新的漏洞被扫描到。漏洞扫描效率非常高,对于大型复杂网络,可优先考虑使用;可以给出哪些漏洞可以被MetasploitExploit,哪些漏......
  • 「从ES到CK 06」clickhouse的数据可视化工具clickvisual
    导航在完成将公司日志数据从Elasticsearch(下称ES)转战到Clickhouse后,个人认为有必要将过程记录分享。限于篇幅及便于分类组织,我会以一个系列文章的形式记录:01《ElasticsearchvsClickhouse》02《Clickhouse的基础知识扫盲》03《Clickhouse多分片多副本集群部署》04《Clic......
  • 青少年CTF-qsnctf-Web-登陆试试
    题目环境:<br/>题目难度:★<br/>题目描述:Syclover用户忘了他的密码,咋办哦,依稀记得密码为6位数字,以774开头,这次我们来爆爆他的密码,让他再也不犯相同的错了先不着急进行爆破看看源码里面有没有其它有用的信息F12查看源代码<br/>functioncheckForm(){letinp......
  • 在 MySQL 中,你可以使用 `AVG()` 函数来计算一组值或表达式的平均值。`AVG()` 函数的基
    在MySQL中,AVG()函数在计算平均值时会自动忽略NULL值¹⁴。也就是说,它只会计算所有非空值的平均值³。例如,假设你有一个包含以下值的列:90,80,70,85,95,NULL,NULL。在这种情况下,AVG()函数将只计算非空值的平均值,即:而不是将NULL值视为0并计算所有值的平均值。如果你需......