问题标签 [java-access-bridge]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
200 浏览

java - 如何使用 Java Access Bridge 识别对象?

是否有任何方法或属性可以使用 Java Access Bridge 一致地识别对象?

我尝试使用 AccessibleContextInfo 名称属性。但大多数情况下,这会在我们的客户端应用程序(例如根窗格、分层窗格、面板和编辑框)中返回一个空字符串。

0 投票
2 回答
5763 浏览

java - 使用 Java Access Bridge 实现自动化

我可以使用Java Access Bridge事件从 Java 应用程序中的 UI 控件(按钮/编辑框/复选框等)中捕获文本。我怎样才能:

  1. 在编辑框中设置文本
  2. 点击一个按钮

使用 Java Access Bridge API 调用?

0 投票
1 回答
707 浏览

java - Java:我在哪里可以找到 WindowsAccessbridge 的源代码?

我从https://jdk7.java.net/source.html下载了 Java JDK 7 源代码。这是一个 100 MB 的包,包含几乎所有的源代码——除了我感兴趣的部分。

Java Access Bridge(JAB)主要由运行在不同进程中WindowsAccessBridge.dllJavaAccessBridge.dll进行进程间通信的部分组成。

在源代码包中存在这些文件夹和文件:

但是所有的cpp文件都丢失了。

文件 Files_cpp.gmk 说:

ZIP 包中不存在这些 CPP 文件。

Makefile 说:

是什么CLOSED_PLATFORM_SRC

所以,现在你会告诉我:“算了!这些文件是不公开的。

但是,在本文中:未收到来自 Java Access Bridge 的回调Darren Ford 写道,他已经编译了 WindowsAccessBridge 的调试版本。那是在 2009 年。所以几年前代码是可用的。

有人有这个代码并且可以为我发布吗?(我不在乎它是否来自较旧的 JDK。)或者它仍然可用但我没有找到它?

注意:在 JDK 7 之前,Accessbridge 不是 JDK 的一部分。这是一个单独的下载,必须手动安装。请参阅http://docs.oracle.com/javase/accessbridge/2.0.2/setup.htm

0 投票
2 回答
1319 浏览

java - 使用 getAccessibleContextAt 时的 Java 访问桥问题

在 C#.net 代码中,一直在尝试使用接口getAccessibleContextAt——以如下方式。

  1. 对于所关注的 Java 应用程序,我确定了主窗口句柄
  2. 我使用getAccessibleContextFromHWND. 这些不是零并getAccessibleContextFromHWND返回true。
  3. 使用这些值和鼠标位置 (x,y) 尝试使用 interface 获取底层控件的上下文getAccessibleContextAt。此方法返回 true,但控件的指针为零。

这是我正在使用的代码:

JABHelper 只是 WindowsAccessBridge.dll 公开的不同接口的包装器。

ctlContextPointer- 总是碰巧为零。对此问题的任何解决方案将不胜感激。如果我做错了什么,请告诉我。

0 投票
3 回答
4619 浏览

java - 如何在捆绑的 JRE 中启用 Java Access Bridge?

在 Java 1.7 中,Java Access Bridge 从一开始就捆绑在一起。它说您需要做的就是运行jabswitch.exe -enable以启用此特定 JRE 的 JAB。

当您从安装程序获取 JRE 时,这可以正常工作。但是,仅在为 Windows 部署 Java 应用程序时,您可能希望捆绑 JRE 以便于安装。捆绑 JRE 后,似乎无法激活 Java Access Bridge

有没有办法在捆绑的 JRE 中启用 Java Access Bridge?

0 投票
1 回答
143 浏览

java - Excelsior Jet 的 JAVA 辅助功能支持

我有一个通过 Java Access Bridge 支持屏幕阅读器的应用程序。jre 版本适用于 NVDA 等屏幕阅读器。我们已经用Excelsior Jet编译了我们的应用程序,发现除了屏幕阅读之外一切正常。

但是另一个屏幕阅读器(例如 JAWS)可以正常工作。

使用的 Java 版本是 1.7.72 使用的 NVDA 是 2014.2。

0 投票
1 回答
1383 浏览

java - 使用 64 位 Java SDK 和 64 位 Windows 在 C# 中为 JavaAccessability 运行示例 Java 应用程序

我有一个示例 Java 应用程序,当我下载javaaccessablity-2.0.2它时使用了 Java Accessibility(通过 Java Access Bridge WindowsAccessBridge-32.dll)。虽然它调用getAccessibleContextFromHWND成功它返回false。请注意,我通过检查工具验证了 hWnd 的正确值。

我的 Windows 64 位系统中安装了 64 位 Java SDK。以下是我尝试过的代码。我也尝试过使用 WindowsAccessBridge-64.dll,但它给出了相同的行为,即 vmID 和 _acParent 返回为零而不是非零值。

我已经阅读了类似的帖子,但它并没有解决我的问题。

0 投票
1 回答
925 浏览

java - 如何调用和初始化 Java Access Bridge API?

Java Access Bridge API 文档指出:

Java Access Bridge API 调用包含在AccessBridgeCalls.h 其中并使用它们,您还必须编译该文件AccessBridgeCalls.c,该文件充当您的应用程序和 WindowsAccessBridge.dll.

但是当我试图用AccessBridgeCalls.h&创建一个 dll 时AccessBridgeCalls.c,它说缺少AccessBridgeDebug.h文件。

如何调用该initiateAccessBridge()方法?我希望执行类似于 JavaMonkey.exe 的任务,例如识别 Java Swing 应用程序中的组件。

当我isJavaWindow(int)从 Access Bridge 调用时,它总是为所有处理程序返回 false。

0 投票
0 回答
529 浏览

java - 如何正确使用 Java Access Bridge?

这是我的代码:

我正在尝试初始化 Java Access Bridge,但 initializeAccessBridge 始终返回 FALSE,并且我在Oracle® Java Access Bridge Installation and Application Developer's Guide中找不到任何错误句柄解释。

我想知道我的 JAB 初始化有什么问题,或者如何处理这个错误。

PS,我可以使用正确的配置运行 JavaMonkey 和 JavaFerret。

0 投票
2 回答
2467 浏览

java - C# 使用 Java Access Bridge 自动化 Java 应用程序

我有一个想要自动化测试的 Java 应用程序。不幸的是,应用程序窗口仅注册为 SunAWTFrame,这意味着没有任何控件暴露给典型的窗口分析和自动化工具。

我的搜索引导我使用 C# 并在 C# 程序中使用 Java Access Bridge DLLS 来自动化它。

有没有人有这方面的经验?

Oracle 为 JavaAccessBridge (JAB) 提供了一些 DLLS 来帮助解决这个问题,因为我在阅读了互联网上的几篇文章后理解了这一点。有一些代码示例,但我现在真的不喜欢它。通过分解它,我认为这是需要实现的:

  1. 导入/加载/解析 JAB dll
  2. 将 JAB dll 中的函数映射到我的程序中的方法/调用
  3. 让 Java 应用程序自动运行(启用 JAB)并将其处理给我的程序
  4. 利用 JAB 函数来控制 Java 应用程序

我对 C# 的了解不如对 Java 的了解,但这不会阻止我。

如果有人可以提供帮助、指导、指示或任何让我开始的东西,那真是太棒了。