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