Изначально я думал - соберу полный перечень сведений, по каким-нить параметрам наверняка можно будет определить элемент.
Для определения ClassnameNN собираю: Class, Instance, ID, Text, PositionX, PositionY, Width, Height, Style, ExStyle, Handle, IsVisible, IsEnabled
Хотя, Instance, ID, Handle лишние т.к. всегда разные.
Одна из проблем - элементы Edit. У них одинаковые Width, Height, Style, ExStyle, IsVisible, IsEnabled
Текст в этих элементах как правило отсутствует, или может быть произвольным на момент определения.
Когда решил определять по координатам - выяснилось что координаты элементов меняются т.к. окно может растягиваться как угодно, опция программы "Вернуть по умолчанию" которая делает окно изначальных размеров не гарантирует расположение элементов на точно таких же координатах. Пока писал пришла идея попробовать задать размер окна с помощью WinMove.
С получением ClassnameNN по Name толком не разбирался т.к. попадаются одинаковые Name, но недавно выяснил что одинаковые Name в разных дочерних окнах. Еще меня смущает что у некоторых элементов Name пустой. Хотя, вроде, пока с элементами у которых пустой Name работать не нужно, так что наверно буду пробовать с Name.