Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TreeView в чужом приложении [D7, WinXP]


Страницы:   1 2

Master_Of_Puppets ©   (2008-02-08 01:08:00) 

Передо мной возникла следующая проблемка. Есть некое приложение (к сожалению, не моё). В нем используется визуальный компонент TTreeView. Мне надо узнать текст выделенного узла и его "вложенность" (1, 2, 3 ... n -ий уровень). До самого компонента TTreeView я то добрался (используя FindWindowEx) а вот дальше я не знаю как...


Master_Of_Puppets   (2008-02-09 19:42:00) [1]

Угу, спасибо всем за помощь и советы!


ketmar   (2008-02-09 12:33:00) [2]

>[32] Master_Of_Puppets (2008-02-09 12:26:00)
>Понял, понял…

будем надеяться. заодно и в остальном разберись, оно полезно. нет ничего хуже, чем оперировать заклинаниями, а составлять их не уметь. мы тебя всю ветку на «разберись» наталкиваем.

---
Understanding is not required. Only obedience.


Master_Of_Puppets   (2008-02-09 12:26:00) [3]

Понял, понял...Не всё, правда, но в том аспекте кода (который мне под себя надо было переделать) разобрался.


ketmar   (2008-02-09 11:14:00) [4]

>[30] Master_Of_Puppets (2008-02-09 01:17:00)
ты хоть понял, что там происходит, или просто кастанул заклинание из гримуара?

---
Understanding is not required. Only obedience.


Master_Of_Puppets   (2008-02-09 01:17:00) [5]

Фуххх, заработало... Взял отсюда, может кому пригодится: http://www.delphikingdom.com/asp/answer.asp?IDAnswer=53339


Бегущий человек   (2008-02-08 21:48:00) [6]

>Master_Of_Puppets   (08.02.08 21:01) [27]
Низя


ketmar   (2008-02-08 21:08:00) [7]

Удалено модератором


Master_Of_Puppets   (2008-02-08 21:01:00) [8]

А можно, используя SendMessage и WM_GETTEXT для ТриВьюва узнать текст выделенного узла?


ketmar   (2008-02-08 20:24:00) [9]

>[24] clickmaker © (2008-02-08 19:53:00)
примерно так оно и есть. именно потому, например, РИхтер не рекомендует для определения наличия уже запущеного экземпляра софтины использовать FindWindow() — она уходит в задумчивость, если какое-то приложение упорно не отвечает. может, в XP и починили (не уверен), а раньше — так. отсюда и «магия» в WM_GETTEXT. но наш энергичный оппонент книжек не читает, поэтому ему оно в офигенную новинку.

---
Understanding is not required. Only obedience.


ketmar   (2008-02-08 20:22:00) [10]

Удалено модератором


clickmaker   (2008-02-08 19:53:00) [11]


> Вызов функции FindWindow предполагает то, что хендл окна
> неизвестен, а известен его текст. WM_GETTEXT - наоборот.
> Где тут "облегчение жизни"??

подозрение, что FindWindow это совокупление EnumWindows, WM_GETTEXT и GetClassName


Dib@zol   (2008-02-08 19:12:00) [12]

> так, FYI: обработчик WM_GETTEXT делает такие манипуляции
> для облегчения жизни функциям вида FindWindow().

эээ, што?
Нахрена, звиняюсь, он это (якобы) так делает? Вызов функции FindWindow предполагает то, что хендл окна неизвестен, а известен его текст. WM_GETTEXT - наоборот. Где тут "облегчение жизни"?? Ведь совместный вызов возможен только для специфических ситуаций.

Впрочем, прочитав подпись Understanding is not required. Only obedience, понимаешь, что к чему.

ЗЫ так лень писать пример, а придётся ведь...


ketmar   (2008-02-08 19:02:00) [13]

>[20] Dib@zol © (2008-02-08 18:56:00)
так, FYI: обработчик WM_GETTEXT делает такие манипуляции для облегчения жизни функциям вида FindWindow().

---
Understanding is not required. Only obedience.


ketmar   (2008-02-08 19:01:00) [14]

Удалено модератором


Dib@zol   (2008-02-08 18:56:00) [15]

Удалено модератором


ketmar   (2008-02-08 18:44:00) [16]

Удалено модератором


ketmar   (2008-02-08 18:43:00) [17]

>[15] Dib@zol © (2008-02-08 18:21:00)
невнимательно. [0]: «Есть некое приложение (к сожалению, не моё)». отсюда однозначно следует, что процесс запущен и живёт в своём АП.

---
Understanding is not required. Only obedience.


Dib@zol   (2008-02-08 18:32:00) [18]

Удалено модератором


clickmaker   (2008-02-08 18:23:00) [19]


> Heap, в котором размещаем, надо считать, принадлежит вызывающему
> процессу

беда в том, что дерево в другом


Dib@zol   (2008-02-08 18:21:00) [20]

The GlobalAlloc function allocates the specified number of bytes from the heap.

Heap, в котором размещаем, надо считать, принадлежит вызывающему процессу. Или я опять чего-то невкурил? Ну тады просвещайте меня, тёмного :(


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо