Xamarin.Macで、アプリケーションの多重起動をチェックするには

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からサンプルプログラムをダウンロードできます。

すでにアプリケーションが起動しているときはコンソールにメッセージを出力して、アプリケーションを終了します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください