| || |
QTP on 64 bit
I have a custom list control in the 32 bit application Under test. In order to work with this control, we built Msg hooks into it such that I can manipulate items inside the control (click, expand, collapse, etc...) through VBS, using COM. This works great because inside QTP I am able to associate the control as a user-defined list object and call methods existing in the COM object to manipulate it... pretty straight forward.
Now, enter Vista 64 bit. I know, I know. isnt supported... [img]/images/graemlins/crazy.gif[/img] BUT! [img]/images/graemlins/shocked.gif[/img]
Everything appears to be working just fine with QTP and my 32 bit application on 64Bit Vista... EXCEPT for manipulation of my control in QTP.
First, 64bit Windows Vista has a 64 bit Wscript engine (default). It also has a 32 Bit Wscript engine (SysWow64 Dir).
Outside of QTP, I create a vbs file that takes the handle of the custom list control, createobject on my com library object, and play away... BUT in order for this to work in 64bit Vista, I had to associate VBS files with the 32 bit wscript engine before it would work... this makes sense, sort of... this whole app domain space between 32 bit and 64 bit systems is a bit confusing to me... because when are you running on which... How can you tell? I digress...
When I run a test in QTP, I can createobject on the com library object and attempt to say, expand an item... but nothing happens in the control... no errors, nothing... like it is getting the wrong handle or something (I would expect an error, but not always), not really sure yet...
I rebuilt my COM object based upon x64 and reinstalled it, except now, it cannot create the ActiveX object (com not registered properly in 64 bit or QTP IS running in the 32 bit app domain... not sure so I abandoned this route in hopes that I can simply run in 32 bit mode on 64 bit OS until absolutely necessary. This also gives me time to bone up on 64 bit Windows architecture, like seperate registries, seperate program files, and who knows what else!)
So, I guess my question is this... When QTP runs ExecuteFile("blah.vbs"), or accesses the vbs libraries associated with a test, does it attempt to execute using the 32 bit or 64 bit engine? Does it call the default WScript? Is there any way to force QTP to execute from the 32 bit engine? [img]/images/graemlins/confused.gif[/img]
Your generous insight is appreciated!