我们有一个使用OLE将数据写入Excel的第三方程序。不幸的是,该应用程序的程序员不理解,使Excel的隐形和隐藏更新速度超过极快。 目前,大型工作需要15分钟才能完成,这非常烦人。 因此我想编写一个Addin,当程序写入excel时关闭visibillity等。有没有办法做到这一点?它是唯一使用这种技术的应用程序,因此检测COM/OLE交互就足够了。Excel:检测OLE自动化?
回答
宁可让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
窗口
从那里你可以很容易地抑制屏幕更新。我猜测第三方应用程序通常不会在用户桌面上闲置。如果确实如此,那么显然这种方法不会帮助你。
代码灵感来源于link终止程序
命令行应用程序可以使用吗? 传统应用程序如下所示: 图形用户界面(GUI)使用参数调用无窗口cmd应用程序。 您的解决方案很有趣,谢谢! –
yes ...命令行.exe文件在执行时应显示在进程列表中。我刚刚用ruby ole进行了测试,上面的代码能够检测到它。 – Pynner
谢谢!我会在圣诞节后尝试,然后回报。 –
- 1. Ole自动化和IIS
- 2. OLE自动化德尔福的Excel图表标签定位
- 3. 自动化PDF字符串搜索使用Excel VBA - OLE错误
- 4. Excel自动化
- 5. 代码OLE自动化练成错误
- 6. MSChart DateTime只显示为OLE-自动化
- 7. OLE自动化 - WORD表格(德尔福)
- 8. 用delphi粘贴OLE自动化
- 9. 使用Delphi的OLE自动化格式化单个Excel列的问题
- 10. Python自动化Excel
- 11. Excel Html自动化
- 12. excel自动化c#
- 13. Excel自动化:Range.Find
- 14. 构建MFC自动化示例(使用OLE自动化访问Excel)。无法编译
- 15. 检测自动化网页请求
- 16. 自动化 - 交互式服务检测
- 17. 自动检测
- 18. C++ Excel OLE自动化。设置整个单元格区域的值'一次'
- 19. 如何让Word在Delphi自动化OLE自动化过程中不可见
- 20. OLE自动化是通过C++自动化IE的好选择吗?
- 21. 破解OLE自动化程序(非MFC)的C++优化
- 22. 测试自动化
- 23. 自动化测试
- 24. 自定义检测变化
- 25. 自动检测GPS
- 26. 自动NSEncoding检测
- 27. 自动检测GPU
- 28. Undeclared identifier .WorkSheets OLE Excel
- 29. 检测鼠标单击mfc/ole
- 30. Excel工作簿自动化
你如何通过Ribbon或VBA调用Addin? Application.Screenupdating = true会关闭此功能,但可能需要将其添加到xll/Addin – InContext
您好, 外部程序是一个独立应用程序,它使用OLE与Excel进行通信。这个程序没有Addin。 我无法影响独立程序的程序员,所以我希望能够检测到OLE通信。该程序基本上是这样的: 1.打开excel并创建一个文件 2.写入数据到excel 3.保存并退出excel。 –
逻辑将在Workbook_Open中添加将屏幕更新设置为false的功能,然后在Workbook_Close中将其设置为true。如果你无法控制文件的创建,这是不可能的,所以你要么与工具的程序员交谈,并说服他们或不可能。即使您知道如何检测OLE过程,也不会在应用程序创建新的Excel副本时添加代码。 – InContext