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
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(); } } } - And this is perfect! Thank. - Varagian
- one@Varagian pinvoke.net/default.aspx/user32.deletemenu here describes the possible constants for the DeleteMenu function - Vladislav Khapin
|