Страница 1 из 1
Как узнать текст метки
Добавлено: 03 авг 2004, 11:38
msv
Как можно узнать текст метки (label.caption), которая находится в окне другой программы?
Добавлено: 03 авг 2004, 11:52
AiK
см. GetWindowText
Добавлено: 03 авг 2004, 12:20
Romeo
А дескриптор окна (первый параметр функции GetWindowText) нужно получать с помощью функции FindWindow.
Добавлено: 04 авг 2004, 12:02
msv
С помощью FindWindow получил дескриптор окна в котором находится метка. А как получить дескриптор самой метки (EnumChildWindows не находит ее)?
Добавлено: 04 авг 2004, 12:07
AiK
msv, запусти spy++ (или winsight32 если пользуешься борландовскими продуктами) и посмотри кто является её родителем.
Запросто на окне может лежать ещё что-то до лейбла.
Добавлено: 04 авг 2004, 12:18
Romeo
AiK верно подметил, поспай немножко
Если подозрения подтвердяться, то в коде прораммы вызовишь
Код: Выделить всё
HWND FindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow
);
используя в качестве первого параметра результат работы первого вызова FindWindow.
Добавлено: 04 авг 2004, 12:48
msv
WinSight видит на форме кнопки, переключатели, а вот лейблы не видит.

И элементов управления, которые могут служить контейнером для метки, на форме тоже нет.
Добавлено: 04 авг 2004, 13:17
race1
TLabel is a nonwindowed control, у него нету хендла. у TStaticText есть хэндл, у TLabel нет. его нельзя найти findwindow
Добавлено: 04 авг 2004, 15:11
Romeo
Остаётся только написать новый текст поверх старого, используя Win GDI
