Automation: Can't inspect GUI controls with Spy++ - c++

I'm trying to automate a desktop application but I can't inspect its elements using tools such as Spy++, Inspect.exe, UI Verify... The application is old aparently built with C++.
Is there anything I can do?
I've thought about reproducing the application communication with the server via code, but I wasn't able to identify HTTP requests/responses between them.
Spy++ screenshot

Related

Qt with webRTC how to implement

I need to transfer live desktop screen data(like remote desktop) to a client application a browser, and user can view remote desktop in browser, I am thinking of implementing it with webRTC and Qt. the webRTC data channel I can use to transfer the desktop data. Only problem is how to interface it with QT. When I look in internet I have few methods.
Implement with native c++ webRTC and communicate with the browser. I searched lot to get a working c++ webRTC application but couldn't successfully run.
Implement with Qt webengine and java script. I read documentation about Qt webkit bridge, I hope I can pass data between Qt C++ part and Javascript part without much delay.
And I am not sure is there any good method exist. Please suggest me the right method.

Two way communication between Chrome extention and win32 c++ application

I need advice about the best way to make an application (written in c++/mfc) communicate with an extension in chrome (I am also studying edge chromium)
As far as I understand, the native application that the extension can communicate with by using native host messaging is launched by chrome. As my win32 application is launched by the user and not by chrome, I need the native application to be a third component, launched by chrome.
What is the best way to let my win32 application communicate with my native app ? Making it a COM server is a good idea ?
I have searched on the other posts but they often talk about the native app talking to another app, not the other way.
Thank you

Control Firefox application from another c++ program using xpcom

So far, all xpcom examples I saw are Firefox addons. You write some C++ code, build, and register it. This resembles Microsoft COM in-process server, but instead of Windows registry the component information is stored in Firefox profile.
Does Firefox have out-of-the box ability to control it from another process using same API? Somthing like COM's local server application
When you start a second firefox instance, it communicates with the existing firefox process and tells it to open a new window, then dies. I suspect it uses some remote form of xpcom.

Host a c++ desktop application on a webpage

I am having a desktop application which having a UI interface made in Qt linked with a library which is doing all the calculation stuff. Values from UI is taken and pass to the API's in the DLL to get the output which is shown on Screen.
Now i want to do the same thing by transferring my application UI to a web page so that people can access the tool from anywhere without any installation process.
I want to retain my c++ DLL code so i don't have to do a lot of work. I am thinking of just converting this DLL to a C++ server by any communication Process(Sockets). I want to host this application on my company's website. (We have to make the website also so we are open to any set of tools).
I want to know what will be the best set of tools to do this stuff. Also there will be lot of data exchange between the webpage and server so the wholething should be optimized also. I goggled a bit and find stuff like silverlight and ASP.NET, But i am still not very clear which option will be more suitable.
I am a c++ programmer with no web application development experience. I am open to learn any new technology.
Thanks
Why not use Qt on the web directly? There are several projects like this one: http://qtwui.sourceforge.net/
There is a netscape plugin that will host a QT application and an ActiveX control wrapper on the QT website. You could use one of those to wrap your application. Note that this approach would require the user (or their administrator) to download and install the plugin.
An alternative approach might be to run your application through a remote desktop such as XVNC, NX or an RDP based layer. IIRC browser based remote desktop clients are available for most such protocols.
A few options:
pick a messaging/queue implementation (like http://www.zeromq.org/) and provide a service
implement a Windows Web Service if you want to be more enterprise friendly: http://msdn.microsoft.com/en-us/magazine/ee335693.aspx
I would not expose the implementation on the internet. Enough to have a simple buffer overflow and the machine can be taken over quickly. Adding a layer between the app and the web provides an easy way to validate input, access, stats ...
You should be able to use your DLL from an wt or cppcms application. Then you do not have to learn something new and can just use C++.
The way I'm currently doing this is with Boost.Python + django

Can I use XPCOM to create and manipulate a Firefox window as I would use win32 COM with IE?

With win32 COM I create an Internet Explorer instance and control it almost fully from my python code (manipulate windows, DOM elements, etc). More specifically, using DispatchEx('InternetExplorer.Application'). Can I do the same using XPCOM and C++/python?
I need to automate certain actions taken on the html ui of some websites, so no I can't use urllib and I can't use selenium, because it doesn't work with cross-domain urls. I've wrote a wrapper class for Internet Explore where I can create a browser window and do anything with it, but I would like to do the same with firefox as well. I've thought about creating a XUL application that exposes the DOM functionality through a tcp server written in XUL/js. I'm not even sure that's possible, but if I can do everything from my python code without running xulrunner externally, much better.
I don't know about programmatically creating and controlling full Firefox instances, but Mozilla can definitely be embedded using XPCOM.
The Mozilla embedding FAQ, embedding how-to and the embedding APIs overview should get you started. There are also other means for embedding.
I have used the nsIDOMXULElement to attach event listeners in my XPCOM C++ code. I haven't tried modifying the UI, but it will probably work as well.
For an example on how to get an nsIDOMXULElement look at the call "SetVideoWindow" in Songbird's code here.