4

次のように、CreateObject を使用してプロセスを開始する Web アプリケーションに VB.NET を使用しています。

Dim AVObject = CreateObject("avwin.application")

すべてが完了した後、すべてが閉じられ、適切なリリース機能を使用して停止されますが、何らかの理由でプロセスが残っています。

終了直前に明示的に強制終了するために、開始されたプロセスのプロセス ID を取得する方法はありますか?

ありがとう

4

2 に答える 2

2

この問題に対する特定の解決策に出くわすことはありませんが、論理的には、以下の疑似ロジックを使用して回避策を作成します (制御された環境で動作するはずです)。

  • CreateObject を CustomCreateObject(...) でラップします。
  • メソッドでは、以下を同じ順序で実装します
  • System.Diagnostics.Process.GetProcessesByName(nameOfYourProcess) を呼び出し、すべてのプロセス ID を保存します
  • CreateObject を呼び出します (...)
  • GetProcessesByName を再度呼び出して、プロセス ID の新しいリストを取得します。
  • 最初のリストではなく、後のリストにあるプロセス ID が、目的のプロセス ID になります。呼び出し元が監視するプロセス ID を認識できるように、それを返します。
于 2010-03-15T11:37:15.650 に答える
1

すべてが完了した後、すべてが閉じられ、適切なリリース機能を使用して停止されますが、何らかの理由でプロセスが残っています。

GC を強制しようとしたか、ReleaseCOMObject () メソッドを呼び出しましたか?

一番

アドリアーノ

于 2010-03-17T21:10:04.347 に答える