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

вікна

дескриптор

дескриптор

дескриптор

дескриптор

вікна

дескриптор

вікна

дескриптор

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. Тільки встановити текст таким чином в чужому додатку не вийде.