如何在其他程序中访问和读取Label的标题

Sey*_*usa 4 delphi

我猜有一个程序是用 Visual Basic 类编写的。我没有源代码,也不会更改它。它有一个MainForm,在 MainFrom 中有一个Frame,在 Frame 中有一个Label。标签的名称是Label1。该程序显示一些带有 Label1 的数据。我想用我的程序读取 Label1 的标题。我的程序是用delphi编写的。我可以访问主窗体和框架的句柄及其标题或类,如下所示:

Hnd := FindWindow('ThunderRT6FormDC', nil); // 找到mainForm的句柄

Hnd2 := FindWindowEx(Hnd, 0, 'ThunderRT6Frame', nil); // 在主窗体中查找Frame的句柄

但我不知道如何访问或读取 Label1 的标题。请帮我 ...

Dav*_*nan 5

您可以尝试以下操作:

  1. 使用 Spy++、WinSpy 或类似工具查看控件是否为窗口化。如果是这样,您应该能够使用 提取文本WM_GETTEXT
  2. 否则,使用 InspectUI 查看程序是否可自动化。如果是这样,请使用 UIAutomation。
  3. 否则,将一些 VB 代码注入到程序中并破解标签文本。这将需要对另一个程序进行逆向工程,并需要深入了解 VB 和该程序使用的 GUI 框架。
  4. 最后一个选项是截取屏幕截图并使用 OCR 读取标签。

坦率地说,如果前两个选项被证明不可用,我认为 OCR 实际上是最简单的。