C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Получить указатель на форму чужой проги [bcb], как получить из Handle окна указатель на
Schumi
Отправлено: 17.11.2005, 16:01


Машинист паровоза

Группа: Участник
Сообщений: 206



Допустим, помимо моей проги запущена еще одна программа, написанная на bcb — я хочу получить ее указатель TForm.
Я могу просто получить хэндл, но что с ним дальше делать — я не знаю.
Мне потом надо получить его все контролы — выудить из них caption и их name.
Подскажите, кто знает.
radiofun
Отправлено: 18.11.2005, 16:15


Ученик-кочегар

Группа: Участник
Сообщений: 20



По моему только с помощью WinApi:
получить текст:
int GetWindowText(

HWND hWnd, // handle of window or control with text
LPTSTR lpString, // address of buffer for text
int nMaxCount // maximum number of characters to copy
);
контролы:
HWND FindWindowEx(

HWND hwndParent, // handle to parent window
HWND hwndChildAfter, // handle to a child window
LPCTSTR lpszClass, // pointer to class name
LPCTSTR lpszWindow // pointer to window name
);

Отредактировано radiofun — 18/11/2005, 16:23
Gedeon
Отправлено: 18.11.2005, 16:42


Ветеран

Группа: Модератор
Сообщений: 1742



Да, в цикле FindWindowEx пока не вернет NULL. Caption Вы получите, но не имена а имена классов, а зачем имена то нужны если не секрет.
Schumi
Отправлено: 18.11.2005, 17:11


Машинист паровоза

Группа: Участник
Сообщений: 206



Я вообще для отдельных форм — сохраняю всех контролов кэпшены в dat-файл, а потом при следующем создании+открытии+следующем запуске - читаю из файла и восстанавливаю их кэпшены (для этого и нужны мне имена контролов).
я хотел извратиться сделать сервисную прогу, которая была могла с любой формы любого моего проекта сделать "снимок".


Отредактировано AVC — 18/11/2005, 17:47
AVC
Отправлено: 18.11.2005, 18:47


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

Я вообще для отдельных форм — сохраняю всех контролов кэпшены в dat-файл, а потом при следующем создании+открытии+следующем запуске  - читаю из файла и восстанавливаю их кэпшены (для этого и нужны мне имена контролов).
я хотел извратиться сделать сервисную прогу, которая была могла с любой формы любого моего проекта сделать "снимок".

Снимок чего? Пошлите программе клиенту сообщение и заставьте это сделать её.
Schumi
Отправлено: 19.11.2005, 10:00


Машинист паровоза

Группа: Участник
Сообщений: 206



В общем решил задачу — я просто открываю exe, читаю там ресурс формы и обрабатываю...

Вернуться в Вопросы программирования в C++Builder