Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.035 c
14-1078214920
ИМХО
2004-03-02 11:08
2004.03.28
Кто что скажет за Тайвань?


6-1073721833
shur2005
2004-01-10 11:03
2004.03.28
Порты


3-1077301063
SoftFM
2004-02-20 21:17
2004.03.28
БД


1-1078418695
ChcngerMan
2004-03-04 19:44
2004.03.28
ListVew


14-1077712071
Vlad
2004-02-25 15:27
2004.03.28
И снова пингвины...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский