1

Acrobatを閉じるのに問題があります。Acrobatを実行しているときにvb.netを使用してPDFファイルに署名しています。完了したら、Acrobatを閉じて、現在署名されているPDFファイルを削除しようとしましたが、ファイルが別のプロセスで使用されていることを示すエラーメッセージが表示されます。閉じてNothingAcroApp、AcroAVDoc、AcroPDDoc JSOに設定しようとしましたが、それでも機能しません。Marshal.ReleaseComObject(...)でリリースしてみましたが、まだ効果がありません。

        acroPDDoc.Close()
        acrobatAVDoc.Close(False)
        acrobatApp.Exit()

        Try
            Marshal.ReleaseComObject(javaScriptObj)
        Catch ex As Exception
        End Try

        Try
            Marshal.ReleaseComObject(acroPDDoc)
        Catch ex As Exception
        End Try

        Try
            Marshal.ReleaseComObject(acrobatAVDoc)
        Catch ex As Exception
        End Try

        Try
            Marshal.ReleaseComObject(acrobatApp)
        Catch ex As Exception
        End Try

        javaScriptObj = Nothing
        acroPDDoc = Nothing
        acrobatAVDoc = Nothing
        acrobatApp = Nothing

私が望まないすべての開いているPDFドキュメントを殺してしまうので、私が使いたくない以下の代替案。

'Gets All Acrobat Processes
Dim tProcess() As Process = System.Diagnostics.Process.GetProcessesByName("Acrobat")

'Kills Each Acrobat Process
For Each AcrobatProcess As Process In tProcess
    AcrobatProcess.Kill()
Next

これを回避する方法を見つけるのを手伝ってください。ありがとう

4

2 に答える 2

2

私はこれに似た解決策を思いついた。あなたは私の例(以下のリンク)を見ることができます、そしてそれはあなたの状況を助けるかもしれません。開いているすべてのacrobatドキュメントを記録してから、強制終了してから再度開きます。ユーザーは、Acrobatがハングすることなく、各ドキュメントを手動で閉じることができます。これは最善の解決策ではないかもしれませんが、実行可能な解決策です。

VB.Net / Acrobat-ユーザーが手動でプログラムを終了した後、Acrobatがハングする

于 2012-06-05T16:48:46.610 に答える
0

すべてのオブジェクトが解放されていることを確認します。メソッドを使用してPDFをマージし、インターフェイスPDDoc InsertPagesを介してブックマークを追加するC#で記述されたユーティリティでも同じ問題が発生しました。JSObject

オブジェクトを保存してリリースするとbookmarkRoot、最後のオブジェクトがリリースされると、Acrobat.exeプロセスが解放されることがわかりました。プロセスを強制終了する必要はありませんでした。

于 2012-07-03T16:36:08.670 に答える