![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с хэндлом ListBox a чужого окна [D5, WinME]
MARcoDEN © (2002-06-13 21:15:00)Использую ф-цию вытаскивания текста из ListBox"a чужого окна:
procedure Tzzz.get(Sender: TObject);
var
hw, ch ,count, i : integer;
buf : array [1..10] of char;
begin
hw:=FindWindow(nil,"Поиск по категориям"); //ищем окно
if hw<>0 then
begin
ch:=FindWindowEx(hw,0,"TListBox",nil);//ищел там листбокс
if ch<>0 then
begin
count:= sendmessage(ch,LB_GETCOUNT,0,0);//сколько же там строк?
if count<>0 then
begin
for i:=0 to count-1 do
begin
sendmessage(ch,LB_GETTEXT,i,integer(@buf));
listbox2.Items.Add(buf);
end;
end else showmessage("Записи отсутствуют.");
end
else showmessage("listbox не найден.");
end
else showmessage("Окно - Поиск по категориям - не найдено.");
end;
Но почему-то в упор хэндл ListBox"a не находит. Выдается сообщение "listbox не найден". В чем дело? Подскажите, пожалуйста!
Игорь Шевченко (2002-06-14 09:43:00) [1]MJH © (14.06.02 00:58)
> дело в том что Tlistbox - это класс объекта делфи, а не
> оконный класс. оконный класс листбокса называется LISTBOX
Вы в этом абсолютно уверены ?
Если приложение написано на Delphi, то имя оконного класса будет TListBox
MARcoDEN (2002-06-14 09:23:00) [2]2MJH: смеется тот, кто смеется последним! А обзываться - вообще, мягко говоря, неприлично! Так что уважительнее относись ко всем, кому ты отвечаешь! Либо не отвечай вообще! Думаю, я ясно выразился?!
MJH (2002-06-14 00:58:00) [3]2МаКАРоН: ты надоел меня смешить уже :)
дело в том что Tlistbox - это класс объекта делфи, а не оконный класс. оконный класс листбокса называется LISTBOX, следовательно пишем FindWindow("LISTBOX",nil)
Song (2002-06-13 21:24:00) [4]Не правильно указаны параметры FindWindowEx() она должна возвращать не 0.
MARcoDEN (2002-06-13 21:16:00) [5]Нет, код немного другой:
procedure Tzzz.get(Sender: TObject);
var
hw, ch ,count, i : integer;
buf : array [1..10] of char;
begin
hw:=FindWindow(nil,"Mail_test"); //ищем окно
if hw<>0 then
begin
ch:=FindWindowEx(hw,0,"TListBox","Mail_test");//ищел там листбокс
if ch<>0 then
begin
count:= sendmessage(ch,LB_GETCOUNT,0,0);//сколько же там строк?
if count<>0 then
begin
for i:=0 to count-1 do
begin
sendmessage(ch,LB_GETTEXT,i,integer(@buf));
listbox2.Items.Add(buf);
end;
end else showmessage("Записи отсутствуют.");
end
else showmessage("listbox не найден.");
end
else showmessage("Окно - Поиск по категориям - не найдено.");
end;