Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Delphi чтение текста WINAPI

Здравствуйте, Програмеры.

Надо прочитать текст из дочернего окна пробовал разные варианты, но получал
st(PChar) = nil a i=0;

i:=SendMessage(h,WM_GETTEXTLENGTH,0,0);
i:=GetWindowText(h, st, i);

Подскажите как лучше осуществить чтение.
Заранее спасибо.

Ответить   Sun, 13 Mar 2005 20:58:19 +0600 (#332051)

 

Ответы:

Здравствуйте !


Есть API функция GetWindowTextLength - как раз возвратит
длину текста окна. Ей надо передать дескриптор окна.
то есть:
i:=SendMessage(h);
Хотя, честно говоря, непонятно, почему не получается с WM_GETTEXTLENGTH.
Может, дочернее окно - комбобокс, где ничего не выбрано, или еще что ?

Также следует учесть, что длина st должна быть не меньше i.
Третий параметр, передаваемый в GetWindowText - максимальная длина буфера,
переданного вторым параметром. То есть память должна быть уже выделена
(это так, на всякий случай).

--
С уважением, Вахтуров Виктор.

Номер выпуска : 4133
Возраст листа : 539 (дней)
Количество подписчиков : 529
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/332189
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Sun, 13 Mar 2005 23:03:47 +0300 (#332189)

 

Здравствуйте, Victor.

Вы писали 14 марта 2005 г., 2:03:47:



Более полный отрезок функции

h:=GetNextWindow(h, GW_CHILD);
i:=GetWindowTextLength(h);
for e:=1 to i do ss:=ss+' '; // i=0!
st:=PChar(ss);
i:=GetWindowText(h, st, i);

Окно типа TMemo, и текст есть!

Ответить   Mon, 14 Mar 2005 02:23:53 +0600 (#332253)

 

Здравствуйте !


А h чему равен ? Не nil ?

--
С уважением, Вахтуров Виктор.

Номер выпуска : 4135
Возраст листа : 540 (дней)
Количество подписчиков : 527
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/332273
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

Ответить   Mon, 14 Mar 2005 07:02:17 +0300 (#332273)

 

Здравствуйте, Victor.

Вы писали 14 марта 2005 г., 10:02:17:


Нет, h>0 Более того посылка wm_settext в тот же hendel приводит к замене текста!

Ответить   Mon, 14 Mar 2005 20:09:09 +0600 (#332642)