| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > VB6 > Подскажите, как извлечь информацию из окна класса |
| Автор: Гость_max 13.12.2003, 12:06 | ||||
| А ситуация у меня такая. Есть .chm файл справки, в открытом виде окно этой справки содержит в себе дочернее окно класса SysTreeVIew32, в котором выведены разделы справки в виде дерева. Хочу получить в цикле текст всех деревьев и всех его листьев. Состряпал такую процедурку:
Проблема, если в SendMassage ставлю хэндл Treeview контрола, который лежит у меня на форме, то текст заполучаю без проблем, но если подставить хэндл дочернего окна справки класса SysTreeVIew32, при прохождении строки:
выдается ошибка: Программа HH вызвала сбой при обращении к странице памяти в модуле COMCTL32.DLL по адресу 0167:82630026. Регистры: и т.д. и т.п. Подскажите, кто знает в чем может быть причина, что из родного TreeView читаем без проблем, а на чужой ругается |
| Автор: Гость_Serj 14.12.2003, 01:07 |
| Я так понял, что ты хочешь получить инфу из Tree другого процесса?! Если да, то твой метод не пройдет. Здесь надо писать длл и внедрятся в чужой процесс. В этом процессе выделить необходимый объем памяти для копирования твоей "tvi" и скопировать ее в адресное пространство чужого процесса. А уж потом - SendMessage хэндл_окна, TVM_GETITEM, 0&, tvi . И после этого надо прочитать данные из памяти чужого процесса. В общем мутное это дело. |
| Автор: Unregistered 14.12.2003, 12:35 |
| Гость_Serj, подскажи, плиз, как на VB можно внедрить длл в чужой процесс? Все таки хочется увидеть, что может получиться. |
| Автор: Гость_Serj 14.12.2003, 17:04 |
| Такую длл писать надо на С++. Советую купить книгу "Программирование в Win32 API" Стивен Роман. Там как раз речь о твоем случае. |
| Автор: Unregistered 14.12.2003, 21:31 | ||
Не подскажешь, может где-то можно найти ее электронный вариант? |