NSRunningApplicationクラスのGetRunningApplications()メソッドは、起動している指定したバンドルIDのアプリケーションの配列(NSRunningApplication[])を返します。
public override void DidFinishLaunching(NSNotification notification)
{
var apps = NSRunningApplication.GetRunningApplications(NSBundle.MainBundle.BundleIdentifier);
if (apps.Length > 1)
{
Console.WriteLine($"アプリケーションはすでに起動しています。");
NSApplication.SharedApplication.Terminate(this);
}
}
サンプルプログラム
Githubからサンプルプログラムをダウンロードできます。
すでにアプリケーションが起動しているときはコンソールにメッセージを出力して、アプリケーションを終了します。