我正在尝试编写一个工具来检查基于 PowerBuilder 的应用程序的状态。我在想的是像 Spy++(或者,更好的是,'Snoop',因为它存在于 .NET 应用程序)之类的东西,它可以让我检查一些基于 PowerBuilder 的 GUI 的对象树(和对象的属性)。
我已经对普通(基于 MFC)的应用程序和 .NET 应用程序做了同样的事情,但不幸的是我自己从未在 PowerBuilder 中开发过应用程序,所以我现在通常在考虑两个问题:
是否有一些 API(最好是 Java 或 C/C++)可以让人们遍历 PowerBuilder 应用程序的可视对象树?我在 PowerBuilder Native Interface system 上阅读了一些内容,但似乎这意味着用 C/C++ 编写 PowerBuilder 扩展,然后可以从 PowerBuilder 脚本语言调用,对吧?
如果有一些可用的 API - 也许 PowerBuilder 应用程序甚至会公开某种支持 IPC 的 API,它可以让我检查 PowerBuilder 对象层次结构的状态,而无需处于 PowerBuilder 应用程序的进程中?也许有可用的自动化接口,或者基于 COM 的东西——或者其他东西?
现在,我的印象是可能需要在 PowerBuilder 应用程序的进程中注入一个 DLL,然后获得对正在运行的 PowerBuilder VM 的访问权限,以便我可以查询它以获取对象树。某种 IPC 机制将让我将这些信息传输到 PowerBuilder 应用程序的进程之外。
有没有人有这方面的经验,或者可以阐明是否有人已经尝试过这样做?
最好的祝福,
- 弗里里希