Estoy intentando crear una aplicación que realice acciones en momentos específicos (muy parecido al Programador de tareas de Windows). Actualmente estoy usando Process.Start() para iniciar el archivo (o exe) requerido por la tarea.Proceso de suspensión iniciado con System.Diagnostic.Process.Start ("FileName")
Estoy iniciando un proceso llamando a un archivo (un .mp3) y el proceso inicia WMP (ya que es la aplicación predeterminada). Hasta aquí todo bien. Ahora quiero matar ese proceso. Sé que es un comportamiento normal para Process.Start (string, string) no devolver nada (null en C#) en este caso.
Entonces me pregunto cómo puedo cerrar WMP cuando lo llamé a través de Process.Start (string, string) ??
Editar:
Tenga en cuenta que yo no estoy abriendo WMP directamente con Process.Start() y esta es la línea con la que corro el proceso:
VB: Me._procs.Add (Process.Start (Me._procInfo))C#: this._procs.Add (Process.Start (this._procInfo))
_procInfo es un ejemplo ProcessStartInfo. _procInfo.FileName es "C: \ route \ myFile.mp3". Es por eso que WMP abre. En cualquier caso, todos los métodos de Start(), a excepción de la instancia-uno que devuelve un valor booleano, no devuelven nada (nulo en C#), porque WMP no es el proceso que se creó directamente (tenga en cuenta que se ejecuta WMP y la canción sí se reproduce).
Que yo sepa, 'Process.Start' solo devolverá' null' si no se inició realmente ningún proceso, p. se reutilizó un proceso existente para cargar el documento (en su caso, un archivo mp3). ¿Realmente quieres estar matando un proceso? ¿Tu código realmente no comenzó? – Ani
@Ani - el inicio estático llama a todos los procesos de retorno pero la función miembro devuelve bool –
@Steve Townsend: Correcto, pero creo que el OP está hablando del método estático. Si ya estuviera disponible una referencia a un objeto 'Proceso' no nulo, entonces el problema no existiría. – Ani