Как узнать текст метки
Модераторы: Duncon, Hawk, Romeo, Eugie
Как можно узнать текст метки (label.caption), которая находится в окне другой программы?
см. GetWindowText
Даже самый дурацкий замысел можно воплотить мастерски
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
А дескриптор окна (первый параметр функции GetWindowText) нужно получать с помощью функции FindWindow.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
С помощью FindWindow получил дескриптор окна в котором находится метка. А как получить дескриптор самой метки (EnumChildWindows не находит ее)?
msv, запусти spy++ (или winsight32 если пользуешься борландовскими продуктами) и посмотри кто является её родителем.
Запросто на окне может лежать ещё что-то до лейбла.
Запросто на окне может лежать ещё что-то до лейбла.
Даже самый дурацкий замысел можно воплотить мастерски
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
AiK верно подметил, поспай немножко 
Если подозрения подтвердяться, то в коде прораммы вызовишь
используя в качестве первого параметра результат работы первого вызова FindWindow.

Если подозрения подтвердяться, то в коде прораммы вызовишь
Код: Выделить всё
HWND FindWindowEx(
HWND hwndParent,
HWND hwndChildAfter,
LPCTSTR lpszClass,
LPCTSTR lpszWindow
);
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
WinSight видит на форме кнопки, переключатели, а вот лейблы не видит. 
И элементов управления, которые могут служить контейнером для метки, на форме тоже нет.

И элементов управления, которые могут служить контейнером для метки, на форме тоже нет.
TLabel is a nonwindowed control, у него нету хендла. у TStaticText есть хэндл, у TLabel нет. его нельзя найти findwindow
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Остаётся только написать новый текст поверх старого, используя Win GDI 

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.