检查delphi控件对象而不修改源代码

检查delphi控件对象而不修改源代码,delphi,testing,object,inspector,probe,Delphi,Testing,Object,Inspector,Probe,我有一个由Delphi开发的股票程序,我想要一个可以从股票程序中读取数据的工具,例如Delphi网格对象中的股票价格 测试中的库存程序是封闭源代码,因此没有机会修改QTP/Robot inspector所需的源代码。我无法分辨它使用的是哪个Delphi版本,对象也不是标准的Delphi控件 所以任何人都可以告诉我们,是否可以通过其他技术检查delphi程序对象数据 提前感谢。您可以使用Winsight之类的工具查找程序窗口的结构,并使用FindWindow和EnumerateChildWindo

我有一个由Delphi开发的股票程序,我想要一个可以从股票程序中读取数据的工具,例如Delphi网格对象中的股票价格

测试中的库存程序是封闭源代码,因此没有机会修改QTP/Robot inspector所需的源代码。我无法分辨它使用的是哪个Delphi版本,对象也不是标准的Delphi控件

所以任何人都可以告诉我们,是否可以通过其他技术检查delphi程序对象数据


提前感谢。

您可以使用Winsight之类的工具查找程序窗口的结构,并使用FindWindow和EnumerateChildWindow查找控件。然后可以使用GetWindowText api获取控件的文本。这将适用于大多数控件,但可能不适用于所有控件。例如,TLabel控件没有句柄,但它自己绘制图形。它没有从中获取文本的句柄,因此不会显示在WinSight中。您必须对窗口进行OCR才能获取这些标签文本:p


但是这种“测试”对我来说更像是“黑客”或“控制”,如果你甚至不知道使用了什么样的控件以及使用了哪个版本的Delphi,为什么你要用这种方式测试这个程序?

你可以使用Winsight之类的工具来找出程序窗口的结构,并使用FindWindow和EnumerateChildWindows查找控件。然后可以使用GetWindowText api获取控件的文本。这将适用于大多数控件,但可能不适用于所有控件。例如,TLabel控件没有句柄,但它自己绘制图形。它没有从中获取文本的句柄,因此不会显示在WinSight中。您必须对窗口进行OCR才能获取这些标签文本:p


但是这种“测试”对我来说更像是“黑客”或“控制”,如果你甚至不知道使用了什么样的控件以及使用了哪个版本的Delphi,为什么你要用这种方式测试这个程序?

尝试从Delphi网格控件中读取数据对你来说是行不通的。它不像是一个标准的Windows编辑控件,您可以在它上面调用GetWindowText


如果你真的想从这个现有的程序中获取信息,那么你需要打开它的内存或者在屏幕抓取上进行OCR。所有这些都非常可怕。

尝试从Delphi网格控件中读取数据对您来说是行不通的。它不像是一个标准的Windows编辑控件,您可以在它上面调用GetWindowText


如果你真的想从这个现有的程序中获取信息,那么你需要打开它的内存或者在屏幕抓取上进行OCR。所有这些都非常可怕。

我不是在测试这个股票程序,我只是想用计算机读取股票程序中的数据,然后运行股票程序没有提供的额外查询,如筛选、排序、条件组合,仅此而已。我不是在测试这个股票程序,我只想用计算机读取股票程序中的数据,然后运行股票程序不提供的额外查询,如筛选、排序、条件组合,就这样。