Страницы

Поиск по вопросам

вторник, 23 октября 2018 г.

Возможно ли убрать кнопку “Закрыть” в консольном приложении?

Можно ли как-нибудь убрать крестик(кнопку) закрытия в консольном приложении 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(); } } }

Комментариев нет:

Отправить комментарий