Главная страница
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.016 c
11-1214986969
Nikfel
2008-07-02 12:22
2010.04.04
Как работать с компонентом TKolSAComboBoxEx.


2-1265190292
s_t_d
2010-02-03 12:44
2010.04.04
Delphi_Excel Как создать копию раб. листа?


15-1263208174
ocean
2010-01-11 14:09
2010.04.04
Как восстановить флешку?


15-1263479212
Piter
2010-01-14 17:26
2010.04.04
HTML "base href" и JavaScript в IE


15-1263287483
Ega23
2010-01-12 12:11
2010.04.04
А почему такая ерунда с Новым Годом?