Главная страница
    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.05 c
3-1077877254
Алексей
2004-02-27 13:20
2004.03.28
DbGrid выделенные строки


3-1077807154
Ozone
2004-02-26 17:52
2004.03.28
Структура БД


14-1077441214
able
2004-02-22 12:13
2004.03.28
Скачавание кусками


11-1057344067
mox
2003-07-04 22:41
2004.03.28
Почему не работает таймер


7-1073342616
Barlokf
2004-01-06 01:43
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский