Domanda

sto usando VB.NET per una web-application che avvia un processo utilizzando CreateObject, in questo modo:

Dim AVObject = CreateObject("avwin.application")

Dopo tutto è fatto tutto venga chiuso en smesso di usare le funzioni di rilascio corretto, tuttavia, per qualche motivo, lo rimane.

C'è un modo in cui posso ottenere l'ID di processo del processo avviato, al fine di uccidere in modo esplicito solo prima della cessazione?

Grazie

È stato utile?

Soluzione

Non ho mai incontrato una soluzione specifica per questo problema, ma logicamente creerò una soluzione usando sotto la logica pseudo (penso che dovrebbe funzionare in un ambiente controllato)

  • Avvolgere il CreateObject nel dire CustomCreateObject (...)
  • Nel metodo implementa sotto nella stessa sequenza
  • Chiama System.Diagnostics.Process.GetProcessesByName (nameOfYourProcess), negozi di tutto il processo di id
  • chiamata CreateObject (...)
  • chiamare di nuovo GetProcessesByName e ora ottenere la nuova lista di processo id
  • Process ID che è nella lista tardi e non nel primo, sarà quello che siete dopo. Rientro che in modo che il chiamante conosce l'ID di processo per monitorare.

Altri suggerimenti

  

Dopo tutto è fatto tutto venga chiuso en smesso di usare le funzioni di rilascio corretto, tuttavia, per qualche motivo il processo rimane.

Hai provato a forzare un GC o chiamato ReleaseComObject () metodo?

Best

Adriano

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top