我們有一個使用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