Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.01.2009, 01:22   #1
Василий
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 34
По умолчанию Чужой Лист бокс

1) Хочу найти в чужом приложении лист бокс. (знаю thandle приложения)
2) узнать состояние лист бокса (состояние прокрутки) и если надо прокрутить его до конца.

какие функции посоветуете?
Василий вне форума Ответить с цитированием
Старый 03.01.2009, 03:51   #2
ViktorXP
Форумчанин
 
Аватар для ViktorXP
 
Регистрация: 24.11.2006
Сообщений: 108
По умолчанию

>>1) Хочу найти в чужом приложении лист бокс. (знаю thandle приложения)
Хендл приложения или окна?
>>2) узнать состояние лист бокса (состояние прокрутки) и если надо прокрутить его до конца.
Получить позицыю можно с помощю GetScrollInfo
Позицыонироват это можно с помощю SetScrollInfo или
Код:
SendMessage({Хендл}, WM_VSCROLL, SB_BOTTOM, 0);
подробно насчет WM_VSCROLL почитай в мсдне. (WParam может быть SB_BOTTOM, SB_ENDSCROLL, SB_LINEDOWN, SB_LINEUP, SB_PAGEDOWN, SB_PAGEUP, SB_THUMBPOSITION, SB_THUMBTRACK, SB_TOP)
ViktorXP вне форума Ответить с цитированием
Старый 03.01.2009, 11:23   #3
Василий
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 34
По умолчанию

хендл окна!

я не знаю имя лист бокса и как к нему обратится...
что делать?

Последний раз редактировалось Василий; 03.01.2009 в 11:25.
Василий вне форума Ответить с цитированием
Старый 03.01.2009, 17:20   #4
ViktorXP
Форумчанин
 
Аватар для ViktorXP
 
Регистрация: 24.11.2006
Сообщений: 108
По умолчанию

сначала вооружись какимто спувером (я например пользуюсь SPYXX.EXE из визуал студии)
открываеш поиск. хватаеш прицел и наводиш курсор на нужный контрол и отпускаеш, нажимаеш ОК и видеш все привязаное дерево (+все класы и имена контролов)

мы тут видем что лист бокс лежит на панели а панель на нашей форме. (я спецыально такой пример набросал. само окно примера слева на скрине)
вывод: сначала ищем панель на форме
Код:
PanelHandle := FindWindowEx({Хендл окна}, 0, 'TPanel', nil);
а потом лист бокс на панели
Код:
ListBoxHandle := FindWindowEx(PanelHandle, 0, 'TListBox', nil);
ViktorXP вне форума Ответить с цитированием
Старый 03.01.2009, 17:49   #5
Василий
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 34
По умолчанию

О_О спасибо огромное!
Василий вне форума Ответить с цитированием
Старый 03.01.2009, 18:54   #6
Василий
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 34
По умолчанию

Скачал один спай... делаю для теста свою тест прогу.
Спай видит кнопки и прочие компоненты на форме в тест проге. (то есть спай работает)
А в той проге где мне надо найти компоненты - спай не видет ничего кроме формы! и одного объекта IME класса. хотя я сам вижу и лист бокс и кнопки. Что делать? Как программно наживать на кнопки и листать лист бокс?
Василий вне форума Ответить с цитированием
Старый 03.01.2009, 19:06   #7
ViktorXP
Форумчанин
 
Аватар для ViktorXP
 
Регистрация: 24.11.2006
Сообщений: 108
По умолчанию

а че за программа? тяжолая? (имеется ввиду относительно одного мегабайта)
ViktorXP вне форума Ответить с цитированием
Старый 03.01.2009, 19:16   #8
Василий
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 34
По умолчанию

игрушка на 15 метров...

я чувствую тут либо двигать мышкой программно либо разбираться в месенджах...
Василий вне форума Ответить с цитированием
Старый 03.01.2009, 19:22   #9
ViktorXP
Форумчанин
 
Аватар для ViktorXP
 
Регистрация: 24.11.2006
Сообщений: 108
По умолчанию

Цитата:
игрушка на 15 метров...
ааа.... ну там в большей вероятности идет отрисовка компонента.
Попробуй с помощю тогоже спувера посмотреть какие контролы привязаны к процесу (не к окну а именно к процесу, только спувер не забудь переключить в режим процесов ) бывает такое что окно для контрола есть а вот сам контрол перерисовывают оддельно (есть некоторые скины такие, да и самому такое зделать не составит труда)
ViktorXP вне форума Ответить с цитированием
Старый 03.01.2009, 19:57   #10
Василий
Пользователь
 
Регистрация: 26.10.2007
Сообщений: 34
По умолчанию

нету в процессах компонентов... =) придется искать нужные процесы...
или тыкать мышкой
Василий вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные с чужой формы A11MaNi Общие вопросы Delphi 4 06.04.2008 20:01
Копирование при помощи лист бокс Beam Общие вопросы Delphi 6 13.02.2008 16:44
из таблицы в комбо-бокс Arteom БД в Delphi 4 13.09.2007 23:22
Управление чужой прогой MAcK Win Api 2 30.01.2007 14:02