Visual Studio 2010 - C# - コンソールの「閉じる」を無効化
- 1. 概要
- 2. 記述
1. 概要
あれ?これは、「C#」の方に書くべきなのかな・・・。
まぁ、事情があって、そういうことになっちゃったのだよ。
コンソールアプリケーションを作成するのであるが、「閉じる」ボタン、右上の×印であるが。
これで、閉じられると困るので、無効化しちゃいたいのだ。
ちょっと探せば出てきたので、需要はあるのであろうか・・・。
本ページは、下記のサイトを参考にさせていただきました。
「C#からDLL関数の呼び出し」(リンク切れになりました)
2. 記述
単に
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace myConsole
{
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);
本来の処理...
}
}
}
先頭の4行目までは、アバウトであるが、5行目は必須である。
処理で、まぁずっと待つような処理を書いているとして・・・。
実行すると
×が、非活性化しているのわかりますでしょうか。
押せなくなっています。
|
|