Is it possible to somehow remove the cross (button) closure in the console application C # ? Or even cancel the closing of the program when you click on this button?

1 answer 1

The solution to the same problem with stackoverflow en

True, it does not "remove", but makes it inactive.

using System; using System.Runtime.InteropServices; namespace Test { class Program { private const int MF_BYCOMMAND = 0x00000000; public const int SC_CLOSE = 0xF060; [DllImport("user32.dll")] public static extern int DeleteMenu(IntPtr hMenu, int nPosition, int wFlags); [DllImport("user32.dll")] private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert); [DllImport("kernel32.dll", ExactSpelling = true)] private static extern IntPtr GetConsoleWindow(); static void Main(string[] args) { DeleteMenu(GetSystemMenu(GetConsoleWindow(), false), SC_CLOSE, MF_BYCOMMAND); Console.Read(); } } }