标签: java-access-bridge

如何使用Java Access Bridge自动化Java Applet?

我需要自动化一个位于IE浏览器网站内的Java Applet.我知道我可以使用Java Access Bridge与Java应用程序进行交互,但是我无法找到如何将其连接到Applet.

我知道GetAccessibleContextFromHWND(..)我认为可以使用的Java Bridge方法.不幸的是,当我使用Spy ++尝试获取Applet的HWND时,我又回来了,所以看起来无法使用通常的FindWindow(..)Windows API函数来完成.

如何使用Java Access Bridge访问和控制Java Applet?

java applet automation java-access-bridge

9
推荐指数
1
解决办法
723
查看次数

使用64位Java SDK和64位窗口在C#中运行JavaAccessability的Java应用程序示例

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

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

class Program
{

    [return: MarshalAs(UnmanagedType.Bool)]
    [DllImport("WindowsAccessBridge-32.dll", CallingConvention = CallingConvention.Cdecl)]
    public extern static bool getAccessibleContextFromHWND(IntPtr hwnd, out Int32 vmID, out Int64 acParent);


    [DllImport("WindowsAccessBridge-32.dll", CallingConvention = CallingConvention.Cdecl, ThrowOnUnmappableChar = true, CharSet = CharSet.Unicode)]
    private extern static void Windows_run();

    [DllImport("user32.dll", SetLastError = true)]
    static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

    static void Main(string[] args)
    {
        Int32 vmID = 0;
        Int64 _acParent =0;
        Windows_run();
        IntPtr hWnd = (IntPtr)FindWindow("SunAwtFrame","Standalone SwingApp"); …
Run Code Online (Sandbox Code Playgroud)

c# java pinvoke winapi java-access-bridge

8
推荐指数
1
解决办法
942
查看次数

没有从Java Access Bridge接收回调

我正在尝试使用Java Access Bridge从C++应用程序中获取有关Swing组件的信息.但是,我注册的回调都没有被调用.我尝试在每个句柄上调用windows然后调用IsJavaWindow(),但它总是返回false.为什么它显然不起作用的任何想法?

我认为这是我的应用程序而不是桥接安装的问题,因为演示的Monkey和Ferret程序工作,initializeAccessBridge()返回true,调试器显示WindowsAccessBridge dll已加载.

我在Windows Vista上使用Java 6,更新13,我认为访问桥的版本2.0.1.

JavaAccess::JavaAccess(void)
{
   using namespace std;

   BOOL isInitialized = initializeAccessBridge();
   if(isInitialized)
   {
      cout << "Bridge Initialized!" << endl;
   }
   else
   {
      cout << "Initialization failed!" << endl;
      return;
   }

   EnumWindows((WNDENUMPROC)EnumWndProc, NULL);

   SetJavaShutdown(OnJavaShutdown);
   SetFocusGained(OnFocusGained);
   SetMouseClicked(OnMouseClicked);
}

JavaAccess::~JavaAccess(void)
{
   shutdownAccessBridge();
}

void JavaAccess::OnJavaShutdown( long vmID )
{
   using namespace std;
   cout << "Java shutdown!" << endl;
}

void JavaAccess::OnFocusGained( long vmID, FocusEvent event, AccessibleContext context )
{
   using namespace std;
   cout << "Focus Gained!" << …
Run Code Online (Sandbox Code Playgroud)

c++ java accessibility java-access-bridge

7
推荐指数
1
解决办法
5351
查看次数

如何在捆绑的 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?

java java-access-bridge

5
推荐指数
1
解决办法
5972
查看次数

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

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

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

有人有这方面的经验吗?

Oracle 提供了带有一些 DLL 的 JavaAccessBridge (JAB),以帮助解决此问题,这是我在阅读了互联网上的一些文章后了解到的。有一些代码示例,但我现在还没有真正理解它。通过分解,我认为这就是需要实现的目标:

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

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

如果有人可以提供帮助、指导、指示或任何帮助我入门的东西,那就太棒了。

c# java automation java-access-bridge

5
推荐指数
1
解决办法
3859
查看次数

如何在JavaFX 2.2中支持辅助技术?

需要通过Java Access Bridge 连接到JAWSNVDA的可能性.据我所知,JavaFX中不支持Assistive Technologies(与Swing不同).

我发现这个项目名为fxaccessible,但它并不适合我的情况.

如何在JavaFX程序中启用对辅助技术的支持?

java accessibility javafx javafx-2 java-access-bridge

3
推荐指数
1
解决办法
854
查看次数

使用 Java Access Bridge 实现自动化

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

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

使用 Java Access Bridge API 调用?

c# java swing accessibility java-access-bridge

3
推荐指数
1
解决办法
5565
查看次数