Possiedo un'applicazione .NET che consente solo di eseguire un singolo processo alla volta, tuttavia tale app viene utilizzata di volta in volta sui box Citrix e, in quanto tale, può essere eseguita da più utenti sullo stesso computer.Come posso verificare un processo in esecuzione per sessione utente?
Voglio verificare che l'applicazione sia in esecuzione una sola volta per sessione utente, perché ora se l'utente A sta eseguendo l'app, l'utente B riceve il messaggio "App già in uso" e non dovrebbe.
Questo è quello che ho adesso che i controlli per il processo in esecuzione:
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
}
funziona per me. Grazie! – Russ