未分類

C# アプリケーションの二重起動を防止する

準備

(なし)

デザイン

(なし)

サンプルコード (C#)

// 名前空間の追加
// (なし)

// コード
static void Main()
{
  Application.EnableVisualStyles();
  Application.SetCompatibleTextRenderingDefault(false);
  
  Process MyProcess = Process.GetCurrentProcess();
  Process[] AllProcess = Process.GetProcessesByName(MyProcess.ProcessName);

  if (AllProcess.Length > 1)
  {
    MessageBox.Show("二重起動できません。");
  }
  else
  {
    Application.Run(new Form1());
  }
}

解説

自分のアプリケーションのプロセス数を取得して判断しています。

C#, C++/CLI はデフォルトで Main メソッドが用意されていますが、VB.NET は用意されていないため、上記のコードを記述後、以下の設定を行います。

1. プロジェクトのプロパティを開く。
2. [アプリケーション] タブを開く。
3. [アプリケーション フレームワーク] のチェックを外す。
4. スタートアップオブジェクトのリストから、[Sub Main] を選択する。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0) 2. フォーム (Form1) にリストボックス (listBox1) を配置します。

-未分類