禁用控制台关闭按钮 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