Close Shell.Application Instance



我正在编写一个脚本,以基于以下SO答案通过Windows shell使用默认程序打开文档:

Dim Shex As Object
Set Shex = CreateObject("Shell.Application")
tgtfile = "C:Naxdud.txt"
Shex.Open (tgtfile)

我注意到Shell.Application的实例永远不会关闭。在我的代码中,我Set Shex = Nothing,但这足够吗?例如,如果我创建一个 Word 或 Outlook 实例,则需要在将变量设置为空之前用.Quit关闭它。这里没有明显的类似情况。

我设置了对Microsoft Shell Controls and Automation的引用来浏览Shell对象,但找不到.Application.Parent属性的任何方法,更不用说看起来像.Quit的方法了。

我错过了一些明显的东西吗?垃圾回收器是否也以某种方式摆脱了实例?它是特定于外壳对象本身的东西吗?

考虑一下,我很确定@jamheadart是正确的,我只是在实例化一个 VBA 类,而不是在 Windows 中创建应用程序类。

不过,可以肯定的是,我接受@Mert Y的建议,即使用上下文管理器来限制范围。

最终代码:

With CreateObject("Shell.Application")
.Open (strPath)
End With

相关内容

  • 没有找到相关文章

最新更新