Форум: "WinAPI";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];
Вниз
Проблема с хэндлом ListBox a чужого окна Найти похожие ветки
← →
MARcoDEN (2002-06-13 21:15) [0]Использую ф-цию вытаскивания текста из 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 не найден". В чем дело? Подскажите, пожалуйста!
← →
MARcoDEN (2002-06-13 21:16) [1]Нет, код немного другой:
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;
← →
Song (2002-06-13 21:24) [2]Не правильно указаны параметры FindWindowEx() она должна возвращать не 0.
← →
MJH (2002-06-14 00:58) [3]2МаКАРоН: ты надоел меня смешить уже :)
дело в том что Tlistbox - это класс объекта делфи, а не оконный класс. оконный класс листбокса называется LISTBOX, следовательно пишем FindWindow("LISTBOX",nil)
← →
MARcoDEN (2002-06-14 09:23) [4]2MJH: смеется тот, кто смеется последним! А обзываться - вообще, мягко говоря, неприлично! Так что уважительнее относись ко всем, кому ты отвечаешь! Либо не отвечай вообще! Думаю, я ясно выразился?!
← →
Игорь Шевченко (2002-06-14 09:43) [5]MJH © (14.06.02 00:58)
> дело в том что Tlistbox - это класс объекта делфи, а не
> оконный класс. оконный класс листбокса называется LISTBOX
Вы в этом абсолютно уверены ?
Если приложение написано на Delphi, то имя оконного класса будет TListBox
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.08.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c