gpt4 book ai didi

introspection - 用于 PowerBuilder 应用程序的 Spy++

转载 作者:行者123 更新时间:2023-12-04 14:21:19 24 4
gpt4 key购买 nike

我正在尝试编写一个工具来检查基于 PowerBuilder 的应用程序的状态。我在想的是类似于 Spy++(或者,更好的是,存在于 .NET 应用程序中的“Snoop”),它可以让我检查一些基于 PowerBuilder 的 GUI 的对象树(和对象的属性)。

我已经对普通(基于 MFC)的应用程序和 .NET 应用程序做了同样的事情,但不幸的是我自己从未在 PowerBuilder 中开发过应用程序,所以我现在通常在考虑两个问题:

  • 是否有一些可用的 API(最好是 Java 或 C/C++)可以让人们遍历
    PowerBuilder 应用程序的可视对象树?我在 PowerBuilder Native Interface system 上阅读了一些内容,但似乎这是为了用 C/C++ 编写 PowerBuilder 扩展,然后可以从 PowerBuilder 脚本语言调用,对吧?
  • 如果有一些可用的 API - 也许 PowerBuilder 应用程序甚至会公开某种支持 IPC 的 API,它可以让我检查 PowerBuilder 对象层次结构的状态,而无需处于 PowerBuilder 应用程序的进程中?也许有一个可用的自动化接口(interface),或者基于 COM 的东西——或者其他的东西?

  • 现在,我的印象是可能需要在 PowerBuilder 应用程序的进程中注入(inject)一个 DLL,然后获得对正在运行的 PowerBuilder VM 的访问权限,以便我可以查询它以获取对象树。然后,某种 IPC 机制将让我将这些信息传输到 PowerBuilder 应用程序的进程之外。

    有没有人有这方面的经验,或者可以阐明是否有人已经尝试过这样做?

    最好的祝福,
  • 弗里希
  • 最佳答案

    首先,简单的答案:我认为你想要做的事情已经完成了,有点。 Rex from Enable做我认为你想要的,但是 IIRC 从与开发人员的交谈中,它取决于应用程序中内置的代码 Hook 。

    这导致我认为您无法完全从应用程序外部完成我认为您尝试做的事情的建议。您可以使用 WinAPI 获取窗口句柄并用它做一些基本的事情,但不是您想要的那么多。并通过 WinAPI 获取有关 DataWindows 的信息?忘了它。

    我相信我听说过像您所询问的那样的 API,但我从未听说过其他任何自动化测试软件工具制造商接触到它的人。如果这是真的(并且此信息的质量类似于“在走廊里听到”),我怀疑让这个信息泄露可能存在一些应用程序安全问题。 (我知道你永远不想感染我的应用程序,或者四处寻找我的 secret 。咧嘴笑)

    即使有 Hook 到 PowerBuilder VM 内存空间,我也不知道能够在没有一些 PowerScript 框架 Hook 的情况下获取内存中的对象列表(例如,使用对象句柄在每个打开和构造函数上填充一个列表)。一旦你有了一个窗口句柄,你就可以轻松地遍历它的控件数组(及其子类控件数组)来获取窗口上的对象列表,但是像 NVO 实例变量的句柄之类的东西会出现问题。

    我很欣赏这个想法。我希望我有更好的消息(也许 Rex 可能会解决您的问题而不必自己动手)。现在我更加期待eran 会发布什么!咧嘴笑

    祝你好运,

    特里。

    关于introspection - 用于 PowerBuilder 应用程序的 Spy++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1011536/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com