2011-10-21 22 views
16

Tengo un pequeño problema al desarrollar una aplicación. Quiero acceder a todo el proceso de la sesión actual solamente. Actualmente estoy usando la clase Process, pero devolverá todos los procesos de todas las sesiones.Obtener todos los procesos de la sesión activa actual

Por favor, ayúdenme a obtener el proceso de la sesión activa actual, pero no todos.

Necesita ayuda para resolver el problema.

+1

¿Qué es 'current session'? – sll

+0

@ user1006996, deje de enviar mensajes de texto como "Urjent"/"Inmediato" mientras solicita ayuda. –

+0

La sesión actual significa el usuario activo actual que inicia sesión. – Awadhendra

Respuesta

33

Esto le dará una lista del proceso en ejecución que se está ejecutando con el mismo ID de sesión que el proceso actual. Creo que eso es lo que quieres.

Process[] runningProcesses = Process.GetProcesses(); 
var currentSessionID = Process.GetCurrentProcess().SessionId; 

Process[] sameAsThisSession = 
    runningProcesses.Where(p => p.SessionId == currentSessionID).ToArray(); 

foreach (var p in sameAsthisSession) 
{ 
    Trace.WriteLine(p.ProcessName); 
} 
+1

Gracias por su respuesta. Esto funcionará para mí. – Awadhendra

+0

Marcaría la respuesta como aceptada entonces –

+0

hay un error tipográfico en su foreach (distingue entre mayúsculas y minúsculas) –

Cuestiones relacionadas