私は、一度に1つのプロセスしか実行できない.NETアプリケーションを持っていますが、アプリケーションはCitrixボックスで時折使用されるため、同じマシン上の複数のユーザーが実行できます。ユーザーセッションごとに実行中のプロセスを確認するにはどうすればよいですか?
ユーザーAが現在アプリケーションを実行している場合、ユーザーBが「App already in use」メッセージを取得していないため、アプリケーションがユーザーセッションごとに1回だけ実行されていることを確認してください。
これは私が今実行中のプロセスをチェックしていること持っているものです。
Process[] p = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName);
if (p.Length > 1)
{
#if !DEBUG
allowedToOpen &= false;
errorMessage +=
string.Format("{0} is already running.{1}", Constants.AssemblyTitle, Environment.NewLine);
#endif
}
私のために動作します。ありがとう! – Russ