I have two versions of a Windows program which is used to manage employee information. This program is operated by GUI. The old version of the program is filled with data, and I'd like to transfer this data to the new version. The software vendor wants to charge me for this transfer so I'd like to see if I can do it myself. Is there software which can help me write a robot for this?

This should be something that can search in a window for a certain text, like "first name" and then click in the window relative to that text location to copy the name to the clipboard.

In order of preference, I would like a library that can be talked to from:
Python, Java, C++

I have used Sikuli before, but I don't think it has the text searching capabilities I need.

  • 2
    It should have some sort of database holding all the data. Can you try locating it for both programs? So that migrating would be just a matter of transferring the data between them. Much easier than messing with the GUI.
    – Alejandro
    Commented Sep 18, 2015 at 17:42
  • Yes the data is held in a sql database but the schema is totally incomprehensible as in its very hard work to deduce the table and column that populates any particular field
    – Mark
    Commented Sep 19, 2015 at 2:32

2 Answers 2


Python library pywinauto may help you. If the program has native controls (written with MFC, WTL or similar; some WinForms apps can be automated), that is what you need. Feel free to ask more detailed questions about pywinauto at the StackOverflow tag. I'm one of pywinauto maintainers.

There is also simple GUI helper for pywinauto: SWAPY. It can quickly show which controls are visible to pywinauto.


At the pywinauto documentation page, it also lists a bunch of other similar projects:

Python tools:

Other scripting language tools:

Other free tools:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.