Можно ли как-нибудь убрать крестик(кнопку) закрытия в консольном приложении C#? Или даже отменить закрытие программы при нажатии на эту кнопку?
Ответ
Решение этой же проблемы с EN stackoverflow
Правда оно не "убирает", а делает неактивной.
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();
}
}
}
Комментариев нет:
Отправить комментарий