Obtenir l'identifiant de processus de processus a commencé avec CreateObject dans .NET

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

  •  19-09-2019
  •  | 
  •  

Question

J'utilise VB.NET pour une application web qui démarre un processus en utilisant CreateObject, comme ceci:

Dim AVObject = CreateObject("avwin.application")

Après tout est fait tout se fermé en cessé d'utiliser les fonctions de libération appropriées, cependant, pour une raison quelconque le processus reste.

Y at-il une façon dont je peux obtenir l'ID de processus du processus a commencé, afin de tuer explicitement juste avant la fin?

Merci

Était-ce utile?

La solution

Je ne viens jamais à travers une solution spécifique à ce problème, mais logiquement je vais créer une solution de contournement en utilisant la logique ci-dessous pseudo (je pense que cela devrait fonctionner dans un environnement contrôlé)

  • Enroulez le CreateObject à dire CustomCreateObject (...)
  • Dans le procédé met en oeuvre ci-dessous dans la même séquence
  • Appel System.Diagnostics.Process.GetProcessesByName (nameOfYourProcess), stocke toutes les processus ids
  • Appel CreateObject (...)
  • Appel GetProcessesByName à nouveau et maintenant obtenir la nouvelle liste des processus ids
  • id processus qui est dans la liste et non plus tard dans la première, sera celui que vous recherchez. Retour que pour que l'appelant connaît le numéro de processus de suivi.

Autres conseils

  

Après tout est fait tout se fermé en cessé d'utiliser les fonctions de libération appropriées, cependant, pour une raison quelconque le processus reste.

Avez-vous essayé de forcer un GC ou appelé

scroll top