【问题标题】:Control IDs in Java/SWT applicationJava/SWT 应用程序中的控件 ID
【发布时间】:2012-01-13 11:44:03
【问题描述】:

我有一个第三方应用程序,我需要读取一些控件的值才能在我自己用 Delphi 开发的应用程序中使用它们。另一个应用程序在 Windows 上运行,显然是使用 SWT 框架用 Java 编写的。不幸的是,每次启动第三方应用程序时,我需要读取值的控件的(控件)ID 都不同。每次创建应用程序的 UI 时,Java/SWT 框架似乎都会生成新的窗口/控件 ID。我可以使用任何其他标识符吗?

【问题讨论】:

    标签: java delphi swt


    【解决方案1】:

    您可以使用 Windows 属性来获取持久的 ID。

    属性的名称是 SWT_OBJECT_INDEX:

    nProp := GetProp(Handle, 'SWT_OBJECT_INDEX');
    

    GetProp() 的返回值是窗口的ID。 Handle 是您控制的句柄。但是,您需要遍历所有子窗口才能找到具有您要查找的 ID 的控件。请注意,如果应用程序更新,这些 ID 可能会发生变化。

    【讨论】:

    • SWT_OBJECT_INDEX 不适用于 Java Swing UI,它适用于 SWT。 Swing GUI 元素是 100% Java,没有本机代码,也没有控制窗口句柄。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2010-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多