Главная страница
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.024 c
1-1078988652
TransparentGhost
2004-03-11 10:04
2004.03.28
Как передать формулу =SUMIF(AC5:AC64;">0";L5:L64) в Excel ?


14-1078066922
Феликс
2004-02-29 18:02
2004.03.28
Вопрос по Excelю.


1-1078613843
Кудесник
2004-03-07 01:57
2004.03.28
Хранение и работа с данными без использования...


1-1078939826
Delphi5.01
2004-03-10 20:30
2004.03.28
IMENNO KATALOG


3-1077362396
YurikGl
2004-02-21 14:19
2004.03.28
Запрос на DataSet