For the moment, I recorded a script by clicking on attributes, and this gives me the type of the attribute, not his name in the application.
For example: I have an edit is called in my application "Number1" but in my script is what is marked:
Set w2 = w1.Window("Edit","", 3)
One option like Robert stated is to compile the application as open. To do this depends on what language the application was written in to begin with (C++, Delphi, etc). Not all applications can be compiled as open. Option two, is to use Name Mapping and Aliases, then you decided the names for the controls.