C# WinUI 3アプリを作っていく途中で、調べたことを忘録的に投稿します。今回はWinUI3プロジェクトで起動中のプロセスを取得する手順です。
System.Diagnostics.Processで取得
WinFormアプリでも同じことができますが、プロセスの名前と、実行パスが同一ならば実行済みの別プロセスという判断で取得できました。
Win32を使う必要があるかと思いましたが、意外に簡単に取得できました。
具体的にはフォームがアクティブ化した際のイベントに、次のようなコードを追加します。
public static Process GetExecuteProcess()
{
Process cp = Process.GetCurrentProcess();
Process[] processes = Process.GetProcessesByName(cp.ProcessName);
foreach (Process process in processes)
{
if (process.Id != cp.Id)
{
if (String.Compare(process.MainModule.FileName,
cp.MainModule.FileName, true) == 0)
{
return cp;
}
}
}
return null;
}
このまま、 既に起動中が無ければ null を戻し、有れば 起動中のプロセスが戻ります。
まとめ
今回は短い記事ですが、WinUI 3 プロジェクトで、起動中のプロセスの取得について書きました。
C#のWinUI 3アプリで、実行中の同じアプリのプロセスを取得したい人の参考になれば幸いです。
スポンサーリンク
最後までご覧いただき、ありがとうございます。