Дескриптор окна выделяется при создании окна. Если вы запускаете приложение несколько раз, окно приложения будет каждый раз получать новый дескриптор окна. И если приложение разрушит и заново создаст окно, оно также получит новый дескриптор.
Дескриптор уникален для всех процессов. то есть вы можете передать дескриптор окна другому приложению, и оно все равно будет действительным (в отличие от дескрипторов ядра). Я не уверен, являются ли они уникальными для каждого рабочего стола или для каждого запущенного экземпляра Windows.
Вы должны использовать информацию из Spy ++ для создания серии вызовов FindWindow(Ex)
, которые получают дескриптор для нужного элемента управления.