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

Вниз

Работа с текстом в чужих окнах   Найти похожие ветки 

 
Ajax   (2003-07-30 09:42) [0]

Пишу плагин к своей проге, который будет исправлять неправильно введенный текст (вУДЗРШ-Delphi). Написал функцию, которая получает выделенный текст из активного окна.

Function GetTextSelected(Wnd:hwnd):string;
var P: PChar;
StartPos, EndPos, x, NumOfEnter: Integer;
begin
NumOfEnter:=0;
Result:="";
SendMessage(Wnd, EM_GETSEL, Longint(@StartPos), Longint(@EndPos));
if EndPos-StartPos<=0 then exit;
P:= StrAlloc(SendMessage(Wnd, WM_GETTEXTLENGTH, 0, 0) + 1);
SendMessage(wnd, WM_GETTEXT,StrBufSize(P), Longint(p));
if length(p)<=0 then exit;
for x:=1 to StartPos do
if (p[x]=chr(13)) or (p[x]=chr(10)) then inc(NumOfEnter);
Result:=copy(p,StartPos+NumOfEnter,EndPos-StartPos+NumOfEnter);
StrDispose(P);
end;

Проблема в том, что это работает только для Edit"ов, а допустим в том же Word"е - нет. Вот и думаю, как с этим справится? Можно еще использовать wm_copy-wm_paste, но тогда нужно сохранять и восстанавливать буфер обмена, а этим заниматься как-то лень.

Что посоветуете?


 
chs2r   (2003-07-30 10:10) [1]

перехватывай нажатия клавиш, сохраняй в буфер, потом по пробелу там или по Enter сверяй


 
Ajax   (2003-07-30 11:38) [2]

>chs2r © (30.07.03 10:10)
>перехватывай нажатия клавиш, сохраняй в буфер, потом по пробелу там или по Enter сверяй

Либо я тебя не понимаю, либо ты меня...


 
XAMLO   (2003-07-31 01:30) [3]

Он тебя не понимает. Я понял но как это сделать не знаю.
самому бы было интересно


 
Ajax   (2003-07-31 09:05) [4]

Сейчас разбираюсь с вариантом использования буфера обмена... Кажется на "красивость" решения можно даже не надеятся :-(



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

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

Наверх





Память: 0.45 MB
Время: 0.01 c
1-3980
ah
2003-09-19 21:22
2003.10.02
есть предположим стринг= asdf , мне нужно определить коды


14-4087
raper
2003-09-14 17:11
2003.10.02
Простите но мой вопрос касаеться винды


6-4011
Тень
2003-07-14 10:49
2003.10.02
InternetAutodial


3-3802
Леонид
2003-09-11 03:26
2003.10.02
Медленный доступ к БД, даже при открытии таблицы...


14-4118
Жестокий ФЛУД
2003-09-12 20:57
2003.10.02
Флуд - хорошо это или плохо?





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