Problems with access to x64 MSAA controls

Bug reports.
anton.purin
Posts: 5
Joined: Thu Jul 01, 2010 4:47 pm

Problems with access to x64 MSAA controls

Post by anton.purin » Fri Jul 02, 2010 8:21 am

I found that x32 Ranorex library not able to get some information from x64 programs. For example it did not recognize XTPReport (Codejock control, supports MSAA) as Ranorex.Table. The workaround is to use Ranorex Spy x64 and Ranorex libraries x64.

But even after i changed project target platform to Any or x64, element browser does not recognize it (same to Ranorex Spy x32).

At any case, will i need to make two builds of tests for x32 and x64 systems?

Also Ranorex is very great, thanks a lot.
Last edited by anton.purin on Fri Jul 02, 2010 10:50 am, edited 1 time in total.

User avatar
Support Team
Site Admin
Site Admin
Posts: 12145
Joined: Fri Jul 07, 2006 4:30 pm
Location: Houston, Texas, USA
Contact:

Re: Element browser does not use x64 libraries

Post by Support Team » Fri Jul 02, 2010 8:41 am

As Ranorex Studio runs as a 32 bit process and the element browser is a part of it, the element browser will always use the 32 bit DLLs. However, since Ranorex 2.3 32 and 64 bit applications can be automated transparently, not matter if the automating process is 32 or 64 bit.

Please, see following section in the Ranorex User Guide for more info:
http://www.ranorex.com/support/user-gui ... forms.html

Regards,
Alex
Ranorex Team

anton.purin
Posts: 5
Joined: Thu Jul 01, 2010 4:47 pm

Re: Element browser does not use x64 libraries

Post by anton.purin » Fri Jul 02, 2010 10:50 am

Thank you, I have read this topic before.

I found that even x64 compiled project does not recognize that control. The only way is to create project in VS and add libraries from ranorex\bin\x64\ folder.

Steps to reproduce
1. Download Report Dialog Sample x64 from http://www.codejock.com/downloads/sampl ... ontrol.asp
2. Run Report Dialog Sample x64 and Ranorex x64 Spy. Look at Report Dialog Sample controls in Spy.
3. Check that XTPReport interpretable as Ranorex.Table (rows and cells accessible), add this XTPReport to repository
4. Create Project in Ranorex studio, set target platform to x64, add repository from step 3
5. Try to access to some table properties of XTPReport from compiled project

Expected
Properties still accessible, because project have to use x64 Ranorex library

Current
Project could not find XTPReport, it can only be found by ID and as Element, so Table properties is unaccessible

User avatar
Support Team
Site Admin
Site Admin
Posts: 12145
Joined: Fri Jul 07, 2006 4:30 pm
Location: Houston, Texas, USA
Contact:

Re: Problems with access to x64 MSAA controls

Post by Support Team » Mon Jul 05, 2010 2:16 pm

Hi,

It seems that the Microsoft Active Accessibility of your Unit Under Test is broken when started as a 64 bit process. Usually, MSAA does not have problems when crossing 32/64 bit boundaries; we have not seen this behavior before and checked that again with other .NET application.

Could you please ask developers if they have implemented MSAA in a custom way? Because the default .NET MSAA implementation should work...

Regards,
Peter
Ranorex Support Team

anton.purin
Posts: 5
Joined: Thu Jul 01, 2010 4:47 pm

Re: Problems with access to x64 MSAA controls

Post by anton.purin » Mon Jul 05, 2010 6:05 pm

We use Codejock standard XTPReport control, same to Samples from link in my last post.

The weird is that Ranorex Spy could recognize XTPReport as table role, but library could not.

User avatar
Support Team
Site Admin
Site Admin
Posts: 12145
Joined: Fri Jul 07, 2006 4:30 pm
Location: Houston, Texas, USA
Contact:

Re: Problems with access to x64 MSAA controls

Post by Support Team » Tue Jul 06, 2010 1:50 pm

We investigated a little more on that issue:

There seems to be a problem with the 64 bit version of those CodeJock controls when trying to access MSAA elements from a 32 bit process, but only on Window 7 x64. Everything works perfectly on Windows XP...
The result of this anomily is that you see table elements when you use "Ranorex Spy" (64 bit) on the 64 bit control, but not when you use "Ranorex Spy x86" (32 bit).

However, when you use 64 bit Ranorex Spy to get RanoreXPaths and then use those paths in a 64 bit Ranorex executable (as you explained in your previous post), everything works perfectly - I just tried that. Please, make sure that you correctly set the "Target CPU" in the "Compiling" settings of the project to "AMD 64-bit processor" or "Any processor". Please, see the corresponding section in the Ranorex User Guide for a detailed description:
http://www.ranorex.com/support/user-gui ... forms.html

Regards,
Alex
Ranorex Team