关闭HTA后,mshta.exe进程继续运行

时间:2014-02-12 12:24:48

标签: pdf iframe process hta

我正在开发一个HTA应用,通过动态设置iframe的{​​{1}}来显示src中的pdf文件。

HTML:

iframe

相关脚本:

<iframe id="preview" src="" application="yes"></iframe>

这很好用,但是当我关闭应用程序时,我仍然可以看到在任务管理器的进程选项卡中运行mshta.exe。如果从未将任何pdf加载到var path = 'some_path/file_name.pdf'; document.getElementById('preview').src = path; ,则mshta.exe进程将正确终止。如果加载.htm文件而不是.pdf,也没有麻烦。如果任何加载的pdf是由3DDUtility.exe运行的3D pdf,则只会出现此问题。

在onbeforeunload处理程序中将.htm文件加载到iframe并不能解决问题。我发现的唯一可行解决方案是通过WMI杀死A3DUtility.exe进程(下面的脚本)。但是,这是关闭程序的一种野蛮方式,因为我无法确定是否还有其他窗口运行嵌入式A3DUtility.exe。

iframe

在关闭应用程序之前,我有什么办法可以在beforeTopClose = function () { var pdf, pdfs = new Enumerator(lib.wmiService.ExecQuery("Select * from Win32_Process Where name = 'A3DUtility.exe'")); while (!pdfs.atEnd()) { if (pdfs.item().CommandLine.indexOf('-Embedding') > -1) { pdf = pdfs.item(); } pdfs.moveNext(); } if (pdf) { pdf.Terminate(); } return; } 内正确关闭3D pdf吗?


修改

这似乎与之前版本的A3DUtility.exe本身有关。当我更新Adobe Reader(从10到11)时,问题就不再发生了。

0 个答案:

没有答案