Поиск в TreeView чужой программы (SendMassage)

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Поиск в TreeView чужой программы (SendMassage)

Сообщение visualman » 16.07.2007 (Пн) 9:36

Проблема: в дереве сторонней программы нужно найти запись (Parent/Child) ОБЯЗАТЕЛЬНО ПО ЕЁ ТЕКСТУ и выделить её. При чём выделить так, чтобы сторонняя программа поняла, что запись была выделена и обработала это выделение (винда это наверое сделает, но так, на всякий случай). Заранее большое спасибо. А то мышкой по координатам кликать надоело ))))

Известен только hWnd дерева!!!
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.07.2007 (Пн) 11:01

SendMassage -- это пять.
А маршалер -- в Кирпичах.
Изображение

visualman
Бывалый
Бывалый
 
Сообщения: 228
Зарегистрирован: 08.02.2002 (Пт) 19:06
Откуда: Russia

Сообщение visualman » 18.07.2007 (Ср) 15:18

Видимо не дорос я до маршалинга ((( ничего не получается ((( Дайте кто нибудь код для поиска в дереве чужой программы. Сроки поджимают некогда разбираться. Обещаю весь отпуск изучать маршалинг :D
Причиной ошибок в коде служит давление со стороны руководства и жесткие временные рамки, им установленные.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 18.07.2007 (Ср) 22:19

Разумеется, маршалить надо как структуры данных, так и строки, на которые указывают элементы этих структур. Поэтому надо описать новый пользовательский тип, который начинается со структуры TVITEM, а затем в нём массив из, допустим, 1024 байт, под именем, допустим, buff. В этот массив будет копироваться текст очередного элемента. Для этого в качестве TVITEM.pszText надо указать значение marshaller.rpMarshal + (varptr(t.buff) - varptr(t))
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 93

    TopList