1

我们有一个第三方程序,它使用 OLE 将数据写入 Excel。不幸的是,该应用程序的程序员不了解使 excel 不可见和隐藏更新极大地加速了 excel。目前,大型作业最多需要 15 分钟才能完成,这很烦人。因此,我想编写一个插件,当程序写入 excel 时,它会关闭可见性等。有没有办法做到这一点?它是唯一使用这种技术的应用程序,因此检测 COM / OLE 交互就足够了。

4

1 回答 1

1

而是让 excel 检查它是否在 OLE 自动化手中,可以检查窗口中运行 OLE 的进程的名称

就像是

Function isRunning(ProcessName) As Boolean

Dim objWMIcimv2 As Object
Dim objList As Object

Set objWMIcimv2 = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\.\root\cimv2") 'Connect to CIMV2 Namespace

Set objList = objWMIcimv2.ExecQuery _
("select * from win32_process where name='" & ProcessName & "'")

If objList.Count > 0 Then

  isRunning = True

End If
End Function

从那里你可以很容易地抑制屏幕更新。我猜测第三方应用程序通常不会在用户桌面上闲置运行。如果确实如此,那么显然这种方法对您没有帮助。

受此链接启发的关于终止程序的代码

于 2012-12-14T23:40:29.497 回答