WebEnh

.net7 mvc jquery bootstrap json 学习中 第一次学PHP,正在研究中。自学进行时... ... 我的博客 https://enhweb.github.io/ 不错的皮肤:darkgreentrip,iMetro_HD
  首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2023-12-21 17:28  WebEnh  阅读(38)  评论(0编辑  收藏  举报
禁用控制台关闭按钮

    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;

            }

}