我正在根据此SO答案编写脚本以使用默认程序通过Windows Shell打开文档:
Dim Shex As Object
Set Shex = CreateObject("Shell.Application")
tgtfile = "C:\Nax\dud.txt"
Shex.Open (tgtfile)
我注意到Shell.Application
永不关闭的实例。在我的代码中,I Set Shex = Nothing
,这就足够了吗?例如,如果创建Word或Outlook实例,则需要.Quit
先将其关闭,然后再将该变量设置为空。这里显然没有类似的事情发生。
我设置了一个参考来Microsoft Shell Controls and Automation
探索Shell
对象,但找不到用于.Application
或.Parent
属性的任何方法,更不用说看起来像的方法了.Quit
。
我是否缺少明显的东西?垃圾收集器是否也以某种方式摆脱了实例?它是特定于Shell对象本身的东西吗?
考虑一下,我很确定@jamheadart是正确的,我只是实例化VBA类,而不是在Windows中创建应用程序类。
不过可以肯定的是,我接受@Mert Y的建议,即使用上下文管理器来限制范围。
最终代码:
With CreateObject("Shell.Application")
.Open (strPath)
End With
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句