delphi – 列出现有对象以读取和更改其属性的理想方法是什么?

前端之家收集整理的这篇文章主要介绍了delphi – 列出现有对象以读取和更改其属性的理想方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在Delphi XE2中开发一个能够读取和更改不同应用程序之间的对象属性的应用程序.

目前,我们唯一的目标应用程序是在Delphi XE中开发的应用程序,我有源代码,在VB6中完成,我们没有源代码或信息.

我们正在寻找的主要对象是标签和编辑,但理想情况下,我需要设计一个对象查看器,列出每个对象及其属性,能够随意读取和更改它们,并调用方法.

我对如何这样做感到茫然,我得到的最好的是能够读取一些标签标题,基于读取VB应用程序上的缓冲区并直接使用内存分配,但即使这样也有它的局限性,因为它只能工作在WinXP中,而不是像预期的Windows 7.

什么是实现我想要的最好方法?如果最好的话,我愿意用不同的语言编写代码.

编辑:在做了一些研究之后,我发现了TestComplete,在其中,它有一个对象查看器,基本上可以列出/修改对象及其属性.
为了使目标不是使用第三个软件方来做到这一点,很明显这是可行的,但我迷失了. MSAA / IAutomation在一定程度上起作用,但两者都不能真正列出我所有的对象.

下面是几个屏幕,简要介绍它是如何工作的(使用第三方VB应用程序,为了安全起见,编辑了部分):

@H_404_15@

解决方法

除WinAPI之外,您还可以使用Microsoft Active Accessibility从其他窗口获取信息.这是一个小例子: http://blogs.msdn.com/b/oldnewthing/archive/2004/04/23/118893.aspx和delphi代码http://www.transl-gunsmoker.ru/2009/08/blog-post.html @H_404_15@ @H_404_15@

猜你在找的Delphi相关文章