var p:PChar; s:string;
..............................
p:=StrAlloc(255);
GetWindowText(h,p,255);
s:=p;
Как получить содержимое поля Edit чужого окна???
Не могу достать текст из поля Edit чужого окна, GetWindowText не дает результатов (да по-моему и не должна), каким макаром вообще это можно сделать?
получаешь хендл эдита и GetWindowText - работать должна. опиши то, как ты пытаешься получить текст.
GetWindowText(h, c, 255);
s:=c;
и в s пусто.
Код:
и все нормально. из эдита какого приложения хочешь прочитать?
нет, с помощью GetWindowText нельзя, узнал что можно как то через SendMessage() но путаница с последними двумя параметрами. Первый хендл, второй тип сообщения (WM_GETTEXT), а вот дальше... вопрос!
Код:
SendMessage(handle,WM_SETTEXT,0, LParam(PCHAR('text')));
Цитата:
SendMessage(handle,WM_SETTEXT,0, LParam(PCHAR('text')));
Мне надо было получить текст, а не установить его.
Но я уже разобрался с этой проблемой, текст прекрасно доходит до моей программы!!!
Цитата: techner
нет, с помощью GetWindowText нельзя
почему нельзя??????
kosfiz написал, всё должно работать, может ты хендл не тот находишь
хе-хе: без комментариев:).
[quote=techner]узнал что можно как то через SendMessage() [/quote]
ну, если хочешь с помощью SendMessage, то вот тебе пример:
Код:
var p:PChar; s:string;
............................
p:=StrAlloc(20);
SendMessage(h,WM_GETTEXT,WParam(20),LParam(p));
s:=p;
............................
p:=StrAlloc(20);
SendMessage(h,WM_GETTEXT,WParam(20),LParam(p));
s:=p;
В чужом окне поле edit создается с содержимым "Текстовое поле". Если искать это содержимое, все прекрасно работает, если написать там что-то другое и искать уже по новому содержимому, то нифига. Как можно это решить?
как это Вы там по содержимому что-то ищете? и почему не считаете нужным показать код, мы ж не телепаты, ей-Богу.
Цитата: George
как это Вы там по содержимому что-то ищете? и почему не считаете нужным показать код, мы ж не телепаты, ей-Богу.
Меня тоже смутило, как тут что-то обсуждают без кода...
Цитата:
В чужом окне поле edit создается с содержимым "Текстовое поле". Если искать это содержимое, все прекрасно работает, если написать там что-то другое и искать уже по новому содержимому, то нифига. Как можно это решить?
А что мешает запомнить HWND этого TEdit в первый раз, а потом его же и использовать? Или он (TEdit) пересоздаётся постоянно?