可以通过Windows API来枚举和迭代属于用C Builder或Delphi编写的外部Win32应用程序的窗体(TForm)上的VCL控件.
再见.
解决方法:
首先,请考虑Windows API不知道“VCL”是什么.它不知道“TButton”或“TStringGrid”,它当然不知道“TImage”或“TLabel”,它们甚至没有窗口句柄.
您可以使用EnumChildWindows
来获取窗口控件的句柄.您可以look at their class names确定它们来自“TButton”或“TStringGrid”,但即便如此,您也无法访问任何与对象相关的设施.您将没有对象引用,因此您无法读取任何属性或调用任何方法.
TestComplete,来自Automated QA,可以从外部程序访问程序的表单和类,这听起来就像您可能尝试的那样.它通过在Delphi程序中包含一个单元来工作,该单元实际上为TestComplete程序提供了一个后门,用于查询程序的内部.这需要应用程序开发人员的合作;你不能在任意程序上使用TestComplete.