Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Вниз

Добавить текст в чужой RichEdit 2.0   Найти похожие ветки 

 
3k   (2005-04-17 13:58) [0]

Здравствуйте, уважаемые мастера.
Есть такая проблема, речь пойдет о RichEdit 2.0 . Нашел я окно, его Handle, имя класса (RichEdit20W). Как записать в RichEdit чужого приложения текст. Не прокатывает почему-то WM_SETTEXT.


 
Roadstar   (2005-04-18 10:13) [1]

И не прокатит, потому, что это чужой процесс.
Ищи тут: CreateRemoteThread, Write/Read ProcessMemory и т.д.


 
ANB ©   (2005-04-18 11:21) [2]


> Roadstar   (18.04.05 10:13) [1]
- не прав.


> 3k   (17.04.05 13:58)  
про WM_SETTEXT я уже сюда писал, к тексту эдитов это сообщение никакого отношения не имеет. 2 пути - эмулировать нажатие клавиш (не очень просто и проблемы с русскими буквами) или попробовать юзать EM_SETSEL + EM_REPLACESEL. Для эдитов и мемок проверял - работает. Для RichEdit попробуй сам.
ЗЫ.Иногда WM_GETTEXT/WM_SETTEXT для некоторых эдитов работает правильно, но я редко на такие нарывался.


 
ANB ©   (2005-04-18 11:21) [3]


> Roadstar   (18.04.05 10:13) [1]
- не прав.


> 3k   (17.04.05 13:58)  
про WM_SETTEXT я уже сюда писал, к тексту эдитов это сообщение никакого отношения не имеет. 2 пути - эмулировать нажатие клавиш (не очень просто и проблемы с русскими буквами) или попробовать юзать EM_SETSEL + EM_REPLACESEL. Для эдитов и мемок проверял - работает. Для RichEdit попробуй сам.
ЗЫ.Иногда WM_GETTEXT/WM_SETTEXT для некоторых эдитов работает правильно, но я редко на такие нарывался.


 
ANB ©   (2005-04-18 11:22) [4]


> Roadstar   (18.04.05 10:13) [1]
- не прав.


> 3k   (17.04.05 13:58)  
про WM_SETTEXT я уже сюда писал, к тексту эдитов это сообщение никакого отношения не имеет. 2 пути - эмулировать нажатие клавиш (не очень просто и проблемы с русскими буквами) или попробовать юзать EM_SETSEL + EM_REPLACESEL. Для эдитов и мемок проверял - работает. Для RichEdit попробуй сам.
ЗЫ.Иногда WM_GETTEXT/WM_SETTEXT для некоторых эдитов работает правильно, но я редко на такие нарывался.


 
3k   (2005-04-18 14:31) [5]

> ANB "или попробовать юзать EM_SETSEL + EM_REPLACESEL"

Пробывал, не работает. Может я ошибся где (см. ниже)? И насчет эмуляции нажатий клавиш, тоже думал, слишком медленно работает.

procedure Insert(hREdit:THandle; Index:Integer; const S:string);
var
L: Integer;
Selection: TCharRange;
Fmt: PChar;
Str: string;
begin
if Index >= 0 then
begin
Selection.cpMin := SendMessage(hREdit, EM_LINEINDEX, Index, 0);
if Selection.cpMin >= 0 then Fmt := "%s"#13#10
else begin
Selection.cpMin :=SendMessage(hREdit, EM_LINEINDEX, Index - 1, 0);
if Selection.cpMin < 0 then Exit;
L := SendMessage(hREdit, EM_LINELENGTH, Selection.cpMin, 0);
if L = 0 then Exit;
Inc(Selection.cpMin, L);
Fmt := #13#10"%s";
end;
Selection.cpMax := Selection.cpMin;
SendMessage(hREdit, EM_EXSETSEL, 0, Longint(@Selection));
Str := Format(Fmt, [S]);
SendMessage(hREdit, EM_REPLACESEL, 0, LongInt(PChar(Str)));
end;
end;


 
ANB ©   (2005-04-19 09:26) [6]

Я у себя проверил. Текст присваивается. Тебе нужно именно добавить или заменить ?
Если заменить - это всего 2 команды :

SendMessage(hControl, EM_SETSEL, 0, -1); // Выделить все
SendMessage(hControl, EM_REPLACESEL, 0, LongWord(PChar(sText))); // Заменить выделение

Если добавить - нужно загнать выделение в конец.


 
3k   (2005-04-22 02:38) [7]

В отъезде был, так что хочу вернуться к теме.

To: ANB ©   (19.04.05 09:26) [6]
1. А hREdit RichEdit"a, это был handle в другом приложении, т.е Вы посылали текст не в RichEdit собственного приложения?
2. Это был именно RichEdit 2.0?


 
3k   (2005-04-22 02:38) [8]

В отъезде был, так что хочу вернуться к теме.

To: ANB ©   (19.04.05 09:26) [6]
1. А hREdit RichEdit"a, это был handle в другом приложении, т.е Вы посылали текст не в RichEdit собственного приложения?
2. Это был именно RichEdit 2.0?


 
ANB ©   (2005-04-22 09:16) [9]

Я в WordPad посылал. Версия 5.1 от XP.


 
3k   (2005-04-22 18:29) [10]

ANB & Roadstar, огромное спасибо за помощь. Ошибку нашел, и как всегда она была просто идиотской.

С уважением, 3k.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.06.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.052 c
14-1116859334
TAHAT
2005-05-23 18:42
2005.06.14
Существуют ли компоненты для работы с архивами 7Zip?


1-1117185097
electric
2005-05-27 13:11
2005.06.14
Прокрутка в TWebBrowser


3-1115285057
Azz
2005-05-05 13:24
2005.06.14
Помогите разобраться, Отцы!


1-1117516990
liver
2005-05-31 09:23
2005.06.14
изображение из ImageList в Image


9-1109845708
Alek Aaz
2005-03-03 13:28
2005.06.14
"Потрошитель" GTA. Парсер и конвертор dff и txd файлов.





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