Форум: "WinAPI";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Внизчужой RichEdit Найти похожие ветки
← →
Sour © (2004-01-13 13:51) [0]Кто-нить знает как корректно работать с чужим richedit-ом. А то у меня не получаются некоторые манипуляции. например:
1.
SendMessage(iHandle, EM_GETSELTEXT, 0, Longint(@p));,
где s: array[1..100] of char;
sendmessage возвращает правильное число выделенных символов, а в p ничего не пишется, хотя если iHandle моего RichEdit все нормально.
2.
s.min := 1;
s.max := 11;
SendMessage(iHandle, EM_EXSETSEL, 0, Longint(@s));,
где s: TCharRange;
Тут вообще, если ничего до вызова sendmessage в richedit не было выделено, то ничего и не происходит, а если до вызова че-нить выделить, то после этого сообщения выделяется весь вилимый текст richedit?
← →
AKul © (2004-01-13 14:35) [1]Если под "чужим" подразумевается другой процесс, то так ничего не получиться, так как для каждого процесса свое адресное пространство. Если в твоем процессе @p - это адрес переменной p, то в другом процесее по этому адресу может находиться, например, код.
← →
Sour © (2004-01-14 06:01) [2]А как тогда можно получить допустим текст из RichEdit в чужом приложении, Handle RichEdit-а я знаю??
← →
Cobalt © (2004-01-14 09:37) [3]Надо внедряться в его АП. Например, с помощью Хука. Примеры есть в статьях.
← →
KosilkA © (2004-01-14 11:55) [4]procedure TForm1.Timer1Timer(Sender: TObject);
var
arr:array [1..$FF] of Char;
begin
if
attachthreadinput(getwindowthreadprocessid(getforegroundwindow,nil),GetCurrentThreadId,true)
then
begin
SendMessage(getfocus,WM_GETTEXT,SizeOf(Arr),Integer(@Arr));
memo1.Lines.Add(arr);
end;
end;
← →
Sour © (2004-01-14 13:28) [5]> KosilkA
прога не попадает в тело if??
← →
KosilkA © (2004-01-14 13:47) [6]
> Sour © (14.01.04 13:28) [5]
ничо не понимаю... кто куда , в чье тело не попадает??? у меня усё работает )))
← →
YuRock © (2004-01-14 13:50) [7]> AKul © (13.01.04 14:35) [1]
> Если под "чужим" подразумевается другой процесс, то так ничего не получиться
А если мамять под переменнйю (например, для текста) выделить через GlobalAlloc?
← →
AKul © (2004-01-14 14:42) [8]To YuRock © (14.01.04 13:50) [7]:
Если моя память меня не подводит, то GlobalAlloc - выделение памяти в куче процесса, т.е. у каждого процесса своя куча (хотя я мог чего-то забыть).
Помойму в win32 нет разницы между GlobalAlloc и LocalAlloc (она была в win 3.11)
← →
YuRock © (2004-01-14 14:54) [9]> AKul © (14.01.04 14:42) [8]
Да, память меня подводит (вернее лень дочитать хелп)...
Но можно попробовать еще VirtualAllocEx() (только для NT-Base)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.038 c