C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3プロジェクトで二重起動を防止する手順です。
Mutexで所有権を取得
WinFormアプリでも同じことができますが、インスタンス部分では上手く取得できなかったので、Window_Activatedイベントでアプリを終了できました。
具体的にはフォームがアクティブ化した際のイベントに、次のようなコードを追加します。
private void Window_Activated(object sender, Microsoft.UI.Xaml.WindowActivatedEventArgs e)
{
Mutex _mutex = new Mutex(false, "WINUI3IMAGEVIEWER_APP");
if (_mutex.WaitOne(0, false) == false)
{
App.Current.Exit();
return;
}
}
このままビルトを行うと、 既にアプリが起動している際には後から起動したアプリは終了します。
まとめ
今回は短い記事ですが、WinUI 3 プロジェクトで、二重起動を防止する手順について書きました。
C#のWinUI 3アプリで、二重起動を制御したい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。