我们可以使用挂钩获取 PowerBuilder Pb Data window 对象吗

Can we get PowerBuilder Pb Data window object using hooking

我正在使用 IAccessible 对象测试 PowerBuilder 应用程序。但是我无法从 PBDataWindow 对象中获取新添加的行。是否可以使用挂钩获取 PBDataWindow 对象。我无法修改应用程序代码,而且我也没有源代码。

此致, 拉金达尔

您可以使用 IAccessible 访问数据窗口控件的辅助功能属性,但需要在代码中 (IDE) 或 运行 时设置它们。我怀疑任何使用辅助功能的 Windows 应用程序都是这种情况,除非语言在未明确提供时为您设置默认辅助功能属性。

如果您无法访问源代码,那么您将不得不查看 Microsoft Windows 'window class names' 来获取对象的句柄,这将具有挑战性,更不用说名称了一个对象在内存中的各种应用程序实例中可能不一致。

对于那些希望使用辅助功能并访问源代码的人来说,这就是他们的设置方式。您可以为数据窗口对象中的许多不同对象类型和列设置这些。

假设:Datawindow控件被命名,"dw_invoice".

在运行时动态设置可访问属性

dw_invoice.AccessibleName = 'InvoiceDatawindow"
dw_invoice.AccessibleDescription = "The current invoice"
dw_invoice.AccessibleRole = DefaultRole!

在开发中设置可访问属性IDE

  1. Select 数据窗口控件
  2. 突出显示"Other"选项卡
  3. 输入可访问名称
  4. 输入 AccessibleDescription
  5. 选择 AccessibleRole(请参阅 PB 帮助以获取枚举的角色列表)