Як отримати дескриптор вікна









TEdit видає Spy, а сиджу в MSVC.Net.
1:SendMessage (Edit1-Handle, WM_GETTEXTLENGTH,0,0); - а де тут текст, який вставиться в елемент?

Який покажчик? Всі покажчики "вказують" на згадку про процес, а у теюя різні додатки. Spy видає hwnd. Але нею спиратися не можна, т.к. це тимчасовий хандл: при новому запуску програми він буде іншим. Спиратися треба на ID (control ID на першій сторінці опису вікна, яке видає Спай).
АЛЕ: щоб знайти контрол з ID, спочатку потрібно знайти його парента, тобто. головне вікно програми.
Для цього, як я вже писала, можна використовувати FindWindow, якщо у головного вікна програма є унікальне ім'я або клас вікна. Якщо ні – можна переглядати процеси та шукати на ім'я EXE. Якщо це теж твій додаток - то можна в нього вбудувати якусь впізнавку, яка відповідатиме на якийсь широкомовний запит. Потім, коли знайдено головне вікно, можна знайти його нащадків за допомогою GetDlgItem(). І вже йому надсилати повідомлення: SendMessage (hwnd, message.);
Повідомлення WM_GETTEXTLENGTH, як випливає з назви, запитує довжину тексту, а встановлює текст повідомлення WM_SETTEXT. Тільки встановити текст таким чином в чужому додатку не вийде.