Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

чужой 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 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
14-1076913252
Красная Майка
2004-02-16 09:34
2004.03.28
Напоминаю о MMP на следующей неделе.


3-1077723225
Domkrat
2004-02-25 18:33
2004.03.28
Работа с *.DBF


1-1078346823
dendy
2004-03-03 23:47
2004.03.28
Редактирование определенной ячейки в StringGrid


3-1077146940
Ve_Ko
2004-02-19 02:29
2004.03.28
Файл-сервер


14-1078330481
Piton_Sk
2004-03-03 19:14
2004.03.28
Кто качал TestsEdit Clift или знает e-mail автора