我正在尝试设计一个可以在任何不同的应用程序上识别COM对象及其属性的应用程序.这是我第一次尝试这样做,而且我不确定从哪里开始.理想情况下,它将使用Delphi XE2制作,但我愿意接受建议.
如果我有CLSID,有没有办法"扫描"正在运行的应用程序以查找基于它的对象?或者,换句话说,是否有更好的方法在任何正在运行的应用程序中列出/查找活动对象?
非常感谢任何帮助,以及关于该主题的良好文档的任何指示.
编辑:问题实际上是在任何其他应用程序中查找COM对象,列出属性以及我需要的其他问题已在其他问题中得到解答.
我正在尝试在Delphi XE2中开发一个能够读取和更改不同应用程序之间的对象属性的应用程序.
目前,我们唯一的目标应用程序是在Delphi XE中开发的应用程序,我有源代码,在VB6中完成,我们没有源代码或信息.
我们正在寻找的主要对象是标签和编辑,但理想情况下,我需要设计一个对象查看器,列出每个对象及其属性,能够随意读取和更改它们,并调用方法.
我对如何这样做感到茫然,我得到的最好的是能够读取一些标签标题,基于读取VB应用程序上的缓冲区并直接处理内存分配,但即使这样也有它的局限性,因为它只能工作在WinXP中,而不是像预期的Windows 7.
什么是实现我想要的最佳方式?如果最好的话,我愿意用不同的语言编写代码.
编辑:在做了一些研究之后,我发现了TestComplete,在其中,它有一个对象查看器,基本上可以列出/修改对象及其属性.
为了使目标不是使用第三方软件方来实现这一点,很明显这是可行的,但我很遗憾.MSAA/IAutomation在一定程度上起作用,但两者都不能真正列出我所有的对象.
下面是几个屏幕,简要介绍它是如何工作的(使用第三方VB应用程序,为了安全起见,编辑了部分):
