我只是使用 WebBrowser 控件在 WinForm 中加载 PDF 文件。我有一个 PDF 字节数组,当用户在我的应用程序中单击打印预览时,我曾经将它写在客户端机器的临时文件夹中。
在用户关闭表单时预览后,我需要删除文件。在删除之前,我需要关闭为预览打开的 Adobe Reader 实例。
我尝试使用获取进程列表
Process[] processes = Process.GetProcessesByName("AcroRd32");
我可以通过这种方式终止进程并从临时文件夹中删除文件。真正的问题来了。假设用户已经为自己的目的打开了一个 PDF 文件,然后通过找到正在运行的实例并关闭它们,我也会关闭他的阅读器。
有什么方法可以找到我的应用程序打开的 Adobe Reader 实例。我只需要检查 Adobe 阅读器。不是任何其他的。
更新
我已经手动打开了 adbobe 阅读器,它首先将文件名或 MainWindowTitle 作为 Magazine.pdf。然后我在我的应用程序中通过 webbrowser 控件打开了 adobe reader。但它的 MainWindowTitle 为 Empty。还应该有两个 adobe reader 实例,但在 taskmanager 中它显示四个实例,其中只有一个具有 MainWindowTitle 作为 Magazine.pdf 请参阅下图以供参考