Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.04.04;
Скачать: CL | DM;

Вниз

Получение текста из дочернего элемента(ListBox).   Найти похожие ветки 

 
itsme   (2010-01-13 14:27) [0]

Доброго времени суток. Столкнулся с проблемой.... Имею чужое родительское окно, которое нахожу при помощи FindWindow, затем вытаскиваю из него хендл и при помощи FindWindowEx нахожу дочерний элемент с классом - PokerStarsChatClass.
Успешно получаю его хендл, но не могу вывести текст из него. На всякий случай проверяю получение хендла по классу при помощи GetClassName - все определяется верно.
GetWindowText должен выводить название - а его нет. WinSpy также показывает его отсутствие. Подсмотрел в интернете следующий код:

function LB_GetSelectedItem(hListBox: THandle): string;
var
 Index, len: Integer;
 s: string;
 buffer: PChar;
begin
 Index := SendMessage(hListBox, LB_GETCURSEL, 0, 0);
 len := SendMessage(hListBox, LB_GETTEXTLEN, wParam(Index), 0);
 GetMem(buffer, len + 1);
 SendMessage(hListBox, LB_GETTEXT, wParam(Index), lParam(buffer));
 SetString(s, buffer, len);
 FreeMem(buffer);
 Result := s;
end;

Выделяю в интересующем меня ListBox"e какое-либо значение - проверяю - снова пустота.
А вот то, что у меня на данный момент:

procedure TForm1.ListBox2Click(Sender: TObject);
var
Cs: Array[0..255] of Char;
Ts: Array[0..255] of Char;
NeWwnd:hwnd;
text:string;
begin
NeWwnd:=StrToInt(ListBox2.Items.Strings[ListBox2.ItemIndex]);
GetClassName(NeWwnd,Cs,255);
Edit3.Text:=Cs;
GetWindowText(NeWwnd,Ts,255);
Edit4.Text:=Ts;
text:=LB_GetSelectedItem(NeWwnd);
Memo1.Text:=text;
end;


 
DVM ©   (2010-01-13 14:41) [1]


> GetWindowText должен выводить название - а его нет. WinSpy
> также показывает его отсутствие. Подсмотрел в интернете
> следующий код:

А с чего ты вообще взял, что контрол обязан реагировать на эти сообщения? У него в оконной процедуре может быть все что угодно, можно только гадать.


 
itsme   (2010-01-13 14:53) [2]

Согласен, не подумал об этом.
Неужели нет никаких вариантов узнать текст внутри этого элемента?


 
DVM ©   (2010-01-13 16:32) [3]


> Неужели нет никаких вариантов узнать текст внутри этого
> элемента?

внедриться в процесс породивший окно, попробовать пошерстить там контрол разными методами, может оконную процедуру его подменить.


 
itsme   (2010-01-13 16:43) [4]

Большое спасибо за ответы:) Видимо придется оставить эту идею на некоторое время:)


 
itsme   (2010-01-14 16:22) [5]

Апну тему... Все-таки судя по всему это необходимо. Готов предложить до 100$ (WebMoney/Яндекс деньги) за софт, который будет выдергивать данный из Run-Time логов клиента. Для тех кто не понимает о чем речь, вот скрин:
http://img18.imageshack.us/img18/4483/rtl.png



Страницы: 1 вся ветка

Текущий архив: 2010.04.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
15-1263382053
itsme
2010-01-13 14:27
2010.04.04
Получение текста из дочернего элемента(ListBox).


1-1247389218
dmitry_12_08_73
2009-07-12 13:00
2010.04.04
Прокрутка и копирование содержимого веб-страницы


15-1263083184
Inovet
2010-01-10 03:26
2010.04.04
Почему сломалась ветка "Кто знает, что-то похожее, но новое?"


15-1262867892
El
2010-01-07 15:38
2010.04.04
С Рождеством


15-1263472832
DeadMeat
2010-01-14 15:40
2010.04.04
Перехват информации