オートメーションを使用してPowerPointアプリケーションを作成すると、メインウィンドウを閉じたときにプロセスがタスクマネージャに残ります。これは、私のアプリケーションがPowerPointアプリケーションへの参照を保持しているため、ガベージコレクションできないためです。しかし、ユーザーがPowerPointアプリケーションを終了したので、そのアプリケーションへのすべての参照を解放することができますか?ここでは鶏肉や卵の問題のようです。以下は私のフォームロードで呼び出す関数です。 PowerPointが既に開かれている場合は、現在のインスタンスが使用されます。そうでない場合は、新しいインスタンスを作成します。ユーザーがメインウィンドウを閉じたときにPowerPointプロセスが終了しない
Private Function TryAttachToApplication() As PowerPoint.Application
Dim app As PowerPoint.Application
Try
app = CType(Marshal.GetActiveObject("PowerPoint.Application"), PowerPoint.Application)
Catch ex As COMException
app = New PowerPoint.Application
End Try
app.Visible = True
Return app
End Function