Форум: "WinAPI";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Вниз
Как можно определить содержимое ListBox чужого процесса Найти похожие ветки
← →
Пашка (2006-07-08 16:48) [0]Мастера, пожалуйста подскажите, как можно получить содержимое ListBox чужого процесса.
← →
begin...end © (2006-07-08 17:13) [1]Так же, как и содержимое ListBox своего процесса.
← →
Пашка (2006-07-08 17:16) [2]своего так:
for i:=0 to 10 do
d[i]:=ListBox1.items[i];
а чужого ???
← →
begin...end © (2006-07-08 17:22) [3]> Пашка (08.07.06 17:16) [2]
Нет, непосредственно с помощью API -- не так. Вначале нужно узнать количество элементов в ListBox"е, послав ему сообщение LB_GETCOUNT, а затем в цикле определять длину текста очередного элемента (LB_GETTEXTLEN), выделять необходимую память и получать сам текст (LB_GETTEXT). Способ этот работает как для своего ListBox"а, так и для чужого.
← →
Пашка (2006-07-10 08:11) [4]А какой тип у ListBox ????
lh:=FindWindowEX(h,0,nil,nil);
h := FindWindow(nil,"TestList");
lh:=FindWindowEX(h,0,nil,nil);
l:=SendMessage(lh,LB_GETCOUNT,0,0);
for j:=1 to l do begin
k:=SendMessage(lh,LB_GETTEXTLEN,0,0);
st:=string(SendMessage(lh,LB_GETTEXT,0,0)); // Где то здесь ошибка
ListBox1.Items.Add(st);
Хотя у меня ListBox находит (так как на нем заканчивается поиск) все равно не работает.
Что значит "выделять необходимую память" ???
← →
Сергей М. © (2006-07-10 11:48) [5]
> Где то здесь ошибка
И не только здесь.
Ошибки начинаются здесь : for j:=1 to l do begin
← →
Leonid Troyanovsky © (2006-07-10 19:34) [6]
> Пашка (10.07.06 08:11) [4]
> А какой тип у ListBox ????
LISTBOX?
хотя,конечно, оно может быть и другим классом.
See also: GetClassName or WS32.exe.
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.076 c