Главная страница
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.007 c
4-1231656577
inferno
2009-01-11 09:49
2010.04.04
Не передавать сообщение мыши


6-1215945136
multiflex
2008-07-13 14:32
2010.04.04
NetFileEnum


15-1263456881
Polkin
2010-01-14 11:14
2010.04.04
Загрузка файлов с JavaScript


15-1263452243
brother
2010-01-14 09:57
2010.04.04
Из cmd получить файл по http


2-1265019868
Unior
2010-02-01 13:24
2010.04.04
Как открыть запароленный *.mdb в Access?