Obtener identificador de proceso del proceso se inició con CreateObject en .NET

StackOverflow https://stackoverflow.com/questions/2431736

  •  19-09-2019
  •  | 
  •  

Pregunta

Estoy usando VB.NET para una aplicación web que se inicia un proceso mediante CreateObject, como esto:

Dim AVObject = CreateObject("avwin.application")

Después de todo se hace todo lo que se cierran hacia abajo es dejado de utilizar las funciones de liberación adecuadas, sin embargo, por alguna razón, se mantiene el proceso.

¿Hay alguna manera en que puedo obtener el identificador de proceso del proceso iniciado, con el fin de matar de forma explícita que justo antes de la terminación?

Gracias

¿Fue útil?

Solución

Nunca me encuentro con una solución específica para este problema, pero lógicamente voy a crear una solución mediante el siguiente pseudo-lógica (creo que debería funcionar en un entorno controlado)

  • Envolver el CreateObject en decir CustomCreateObject (...)
  • En el método implementa a continuación en la misma secuencia
  • Llamada System.Diagnostics.Process.GetProcessesByName (nameOfYourProcess), tiendas de todo el proceso de las identificaciones
  • Llamada CreateObject (...)
  • Llamada GetProcessesByName de nuevo y ahora obtener la nueva lista de identificadores de proceso
  • Identificación del proceso que está en la lista más adelante y no en el primero, será el que está después. Devolver esa manera que el interlocutor sabe el identificador de proceso para supervisar.

Otros consejos

  

Después de todo se hace todo lo que se cierran hacia abajo es dejado de utilizar las funciones de liberación adecuadas, sin embargo, por alguna razón, se mantiene el proceso.

¿Ha tratado de forzar un GC o llamado ReleaseComObject () método?

Mejor

Adriano

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top