1

これが私の状況です:私はc#を使用しており、複数のpdfファイルを開いています。を見ていると、開いた新しいファイルがそれぞれ [アプリケーション] タブに表示されますが、プロセスtaskmanagerは 2 つしかありません。adobe32名前で実行するgetprocessesと、2 つのプロセスが表示され、それらをドリルダウンすると、メインウィンドウのタイトル名で開いた PDF の 1 つを特定できますが、もう 1 つを見つけることができません。私の目標は、両方を閉じることなく、選択したウィンドウを終了できるようにすることです。どんな助けでも大歓迎です。

4

2 に答える 2

0

解決策はありますが、PDF ファイルを開く方法に要件があるかどうかによって異なります。あなたが何をしているかを見なければ、現時点では推測しかできません。とにかく、この方法では、開いているウィンドウを破棄するために p-invoke を使用する必要はありません。

/n コマンド ライン スイッチを使用して AcroRd32.exe を呼び出し、PDF ファイルのパスを渡すと、開いた PDF ファイルごとに AcroRd32.exe の新しいインスタンスが開きます。特定の PDF ドキュメントを閉じるには、いくつかの方法が考えられます。

2 つのファイルを開く簡単な方法の 1 つを次に示します。pdfProcess1 にはまだアクセスできるため、それを強制終了できます。

Process pdfProcess1 = new Process();
pdfProcess1.StartInfo = new ProcessStartInfo("AcroRd32.exe", "/n" + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "SomePDFDoc1.pdf"));
pdfProcess1.Start();

Process pdfProcess2 = new Process();
pdfProcess2.StartInfo = new ProcessStartInfo("AcroRd32.exe", "/n" + Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "SomePDFDoc2.pdf"));
pdfProcess2.Start();

pdfProcess1.Kill();
于 2013-04-06T05:06:32.203 に答える
0

ウィンドウ ハンドル ID で P-Invoke を使用する必要があります。

ウィンドウを閉じる:

http://www.pinvoke.net/default.aspx/user32.closewindow

または DestroyWindow:

http://www.pinvoke.net/default.aspx/user32/DestroyWindow.html

于 2013-04-06T04:19:38.310 に答える