google / access-bridge-explorer Goto Github PK
View Code? Open in Web Editor NEWExplore accessibility tree of Java Access Bridge enabled applications
License: Apache License 2.0
Explore accessibility tree of Java Access Bridge enabled applications
License: Apache License 2.0
Hi,
We are using WindowsAccessBridgeInterop.Dll (in c#) to monitor a java applet (swing) application subscribing click event.
It works fine with functionality of events triggering but, java swing application is impacted with two issues(below):
Without subscribing click event or any mouse event, application runs fine without any issue.
Need urgent help in fixing these two issues with using WindowsAccessBridgeInterop.(java access bridge).
Thanks,
I would like to explore the oracle form 6i or form 10g, does any one have any idea ?
Trying to build around this code small utility to dump Java window content every 1sec - for logging frequently updated data.
However, current implementation build around 200ms delay before first refresh of JVM tree for some reason.
ExplorerFormController.cs:
private void PostRefreshTree() {
_delayedRefreshTree.Post(TimeSpan.FromMilliseconds(200), () => {
Decreasing this limit results in empty returning list from EnumJvms() call (somewhere around 50ms delay on my machine).
Is it possible to get jvm content without this wait limit?
Thanks in advance for any info!
I am trying to automate UI of "FileChooserDemo.jar" application distributed with jdk-8u121-windows-x64-demos. There is a button on the UI "Show FileChooser". There is a drop down labelled "Look and Feel" on this application. Possible values are "Metal","Nimbus","Windows",etc. I am selecting the "Windows" options using following code :
//targetControl is AccessibleContextNode and has been looked up already
targetControl.AccessBridge.Functions.ClearAccessibleSelectionFromContext(targetControl.JvmId, targetControl.AccessibleContextHandle);
//index is the position of "Windows" in the dropdown
targetControl.AccessBridge.Functions.AddAccessibleSelectionFromContext(targetControl.JvmId, targetControl.AccessibleContextHandle, index);
Expected behavior :
Theme of the application should change to selected value in drop down like it happens when manually making the selection using mouse.
Current behavior :
Theme of the application doesn't change. Also, changing the value in drop down now manually using mouse has no effect on UI.
Regards,
Nish26
in the class AccessibleContextNode,there are two method to get the node ,one is "GetNodePathAtWorker" and the other is "GetNodePathAtUsingAccessBridge" ,for some applications the "GetNodePathAtWorker" can work fine,but "GetNodePathAtUsingAccessBridge" can not work ,but for some applicaitons the method "GetNodePathAtUsingAccessBridge" can work fine,but the "GetNodePathAtWorker" can't ,I want to know why?
Java applets are not visible to the Access Bridge Explorer, only top level windows are shown.
The embedded window handles are not checked for beeing java windows and not shown in the UI.
I have tested to access embedded java windows using the JAB and it worked.
Hey,
I have a problem with one particular java application that it crashes when I open AccessBridgeController.exe saying " is not working anymore - Close application" (Don't have the message in english but it seems like a Windows error message.
On a simple example java application everything worked fine so it seems to be a specific problem with this application.
Any hints on what I can do?
One more thing: The java application opens in its own portable JRE.
hi everyone,
when i run access-bridge-explorer as admin,explorer in tree i am unable to see my java applications ,and when i run access-bridge-explorer in user mode, my java application in admin mode also explorer tree is not updating.
for Java Application, the controls in the same Page window; some controls can be inspected, by some can't ,I don't Know why ,can somone tell me ,what's the access bridge 's limitation?
Hi, Thanks for the fantastic application. It helps us tremendously in resolving Java Accessibility issues. I tried compiling Access Bridge explorer with .NET 4.6.1. it compiles cleanly but it seems like it crashes as soon as first callback is raised from JAB to Access bridge explorer. The code seems ot work fine without any events attached.
Hi,
I tried to replicate same scenario from here in a different project, but it never finds any JVM available. I tried using WindowsForm, giving a delay to check if loading time could be an issue, but no success.
Anyone had this in the past and could help?
The below is working fine to click a stand alone checkboxes but is not working for a checkbox embedded inside a table cell.
int failure = 0; AccessibleActionInfo info = (AccessibleActionInfo)actions[action]; AccessibleActionsToDo actiontodo = new AccessibleActionsToDo(); actiontodo.actions = new AccessibleActionInfo[32]; actiontodo.actions[0] = info; actiontodo.actionsCount = 1; _accessBridge.Functions.DoAccessibleActions(JvmId, oh1, ref actiontodo, out failure)
I cloned source code from GitHub run is ok,its can view panel, viewport,property...
I create new project and add code line:
AccessBridge accessBridge = new AccessBridge();
accessBridge.Initialize();
List<AccessibleJvm> lstAccessibleJvm= accessBridge.EnumJvms();
But lstAccessibleJvm aways is count =0.
When using the Access Bridge Explorer, and monitoring for mouse events, those are posted twice in the grid at the bottom of the page. Is there a way to capture mouse events only once? Please advice. Thanks.
When running AccessBridgeExplorer.exe on a 32-bit version of Windows, there is an error displayed in the "Messages" view stating "Error retrieving accessible context info".
for one java application in my client's computer,the access bridge explorer is not work, the ui of access bridge explorer can't show the element tree,but the uipath can, It can inspect the controls in the java application,I don't know why ,does the dll not compatibal? but I can use JavaFerret to trace the this java application's event,however,the JavaMonkey can't show the element tree . so what's the problem,can you tell me ,It bother me for a long time
I am trying to automate UI of "FileChooserDemo.jar" application distributed with jdk-8u121-windows-x64-demos. There is a button on the UI "Show FileChooser".
I perform the click operation on the button as follows :
//accessBridge has been initialized and hWnd is the handle of the initial window that opens
//by launching FileChooserDemo.jar
AccessibleWindow initialWindow = accessBridge.CreateAccessibleWindow(hWnd) ;
//FindTargetControl() will find the control inside initialWindow provided control lookup details
AccessibleContextNode targetControl = FindTargetControl(some parameters);
AccessibleActionsToDo actionsToDo = new AccessibleActionsToDo()
{
actions = new AccessibleActionInfo[32],
actionsCount =1
};
actionsToDo.actions[0] = new AccessibleActionInfo() { name = "click" };
int failure;
targetControl.AccessBridge.Functions.DoAccessibleActions(targetControl.JvmId, targetControl.AccessibleContextHandle,ref actionsToDo, out failure);
This opens a new dialog window.
Scenario 1 :
If i now try to call GetInfo() on the initialWindow , I get a System.ApplicationException .
Also, at this point if i try to call accessBridge.EnumJvms() , the call will never return;
Scenario 2 :
If instead of using the API to perform click, i will lookup the control bounding box and perform a click on it using mouse , i can now perform both the above operations.
Since the call to DoAccessibleActions() returns after performing the click , I would like to understand if performing a operation such as click using API which opens a dialog window is a blocking operation which prevents any attempt to interact with the AccessibleWindow or trying to EnumJvms() ? Please provide any possible workaround . Also, I am not sure if this is a bug or expected behavior. Request to please tag it appropriately.
Regards,
Nish26
@rpaquay I try to figure out how Java Access Bridge work. I don't understand when we can start to use JAB functions(e.g. IsJavaWindow()). In AccessBridgeExplorer after AccesssBridge.Initiaze() -> _function.Windows_run() (line 90) - I thought, we can use JAB but it doesn't work, only in RefreshTree() method JAB's functions begin to work. I got stuck :(
trying to work with Java Access Bridge in c#, everything works fine however whenever i try to subscribe on dotnet framework version 4.5 and above e.g.
JabApi.MouseClickedDelegate mcd = new JabApi.MouseClickedDelegate(HandleMouseClickedDelegate); JabApi.setMouseClickedFP(mcd);
Application crashes, but same code works fine on dotnet framework version 4.0.
Checked Event log : Faulting module name: windowsaccessbridge-64.dll
Hi,
I'm trying to use the function SetTextContents on a 32bits system and always return false.
On a 64bits system (i'm building this project on a x86), the function work's perfectly.
AccessBridge.Functions.SetTextContents(JvmId, _ac, "test");
So when I try to run the code in a WinForms-application everything works fine.
When I try to run the same code in a WPF-application, accessBridge.EnumJvms() returns 0.
This is my code:
AccessBridge Java = new AccessBridge();
Java.Initialize();
DoEvents();
var test = Java.EnumJvms();
This is my DoEvents method for wpf (should be equivalent to WinForms Application.DoEvents()):
public static void DoEvents()
{
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate {}));
}
test.Count is always 0 in wpf.
Working fine in WinForms.
I want to get the element by mouse point,but when I use GetNodePathAt It return the table ,not the cell inside, I can get the table's Children ,But the cell can't show me the location of it ,?so can you tell me how to do it ?
Issue
When using the Access Bridge Explorer on a 32 bit Windows 7 machine, after around 30 seconds an unhandled exception appears with the following text.
Unhandled exception has occured in your application. If you click
Continue, the application will ignore this error and attempt to continue. If
you click Quit, the application will close immediately.
Unable to load DLL 'WindowsAccessBridge-32.dll': The specified module
could not be found. (Exception from HRESULT: 0x8007007E).
Behavior
If I ignore the error by clicking Continue, The application will continue functioning as expected without any issue. However, the error will appear again after around a minute of use.
Cause
On a 32-bit Windows 7 machine running Java 7 Update 76, there is no file for WindowsAccessBridge-32.dll
. From what I can tell, this file only existed in older, manual installations of the Java Access Bridge made prior to Java 7's default inclusion of the JAB.
In the absence of WindowsAccessBridge-32.dll
, Access Bridge Explorer should be using C:\Windows\System32\WindowsAccessBridge.dll
Hi,
Has anyone implemented RequestFocus and could enlighten the path here?
Any other clue on how to focus in a field other than implementing RequestFocus?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.