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

Вниз

Как скопировать слово из другого приложения?   Найти похожие ветки 

 
mao   (2003-02-23 08:38) [0]

Кто-нибудь знает, как можно выдернуть слово из чужого приложения по наводке на него мыши? Я видел англо-корейский переводчик, он переводит слово, на которое наведен курсор мыши. Причем, он переводил даже название ярлыков на рабочем столе, не говоря уже об отдельных словах в Word-е!


 
Song   (2003-02-23 09:50) [1]

Это не тривиально. Надо достать слово: AttachThreadInput.. GetFocus .. Далее нужно посылать сообщение чтобы выяснить слово, зависит от того в каком контроле находится слово (RichEdit, Memo и т.д.) Вообщем гемор ещё тот.


 
Alexandr B.   (2003-02-23 10:09) [2]

для простеньких контролов

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var buf:array[1..100] of char;
wnd:HWND;
begin
if not (ssLeft in shift) then exit;
wnd:=WindowFromPoint(Mouse.CursorPos);
GetClassName(wnd,@buf,sizeof(buf));
Edit1.Text := buf;
GetWindowText(wnd,@buf,sizeof(buf));
Edit2.Text := buf;
end;

а если хоца что нить посложнее то
> Song © (23.02.03 09:50)



 
mao   (2003-02-23 19:29) [3]

Song, а можно поподробнее? Может на небольшом примерчике? Например, прочитать слово из Word-а или Блокнота, или со старницы в IE.
Как предлагает Alexandr B. я уже пробовал (правда, на VB, но смысл один и тот же), использовал последовательно GetCursorPos, WindowFromPoint, GetWindowText. Но тут проблема в том, что GetWindowText чаще дает только текст заголовка окна, т.е.,напрмер, в Word-е он не выдергивает текст, который там набран. Такая же проблема в IE - выдает только заголовок окна. Может, все-таки как-то можно добится, чтобы он брал текст из текстовых полей (в Word-е, IE, Блокноте и т.д.)?


 
Ihor Osov'yak   (2003-02-24 00:40) [4]

Для ie - http://delphi.vitpc.com/mastering/tweb.htm, потом MSDN
Для ворда наверное есть похожая технология.

Кроме GetWindowText можно еще юзать WM_GETTEXT, этот зверь несколько иное возвращает, чем GetWindowText, и кажется для текстовых полей именно введеный текст - посмотри в msdn, или сделай експеримент....

... Для общего случая - кроме Song © (23.02.03 09:50), есть еще извратный способ перехвата функций, выводящих текст. Но это тоже не для начинающих...


 
mao   (2003-02-24 13:34) [5]

Как все это сложно... С GetWindowText проблем никаких, а вот с WM_GETTEXT никак не могу разобраться. :( Может все-таки есть простой пример по использованию WM_GETTEXT или AttachThreadInput.. GetFocus ..???


 
Song   (2003-02-24 13:53) [6]

В базе данных готовых решений есть.


 
mao   (2003-02-27 07:08) [7]

А если сходу сделать что-нибудь несложное (совсем примитивное для примера)? С использованием WM_GETTEXT или AttachThreadInput.. GetFocus
Ну очень нужно...............



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

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

Наверх





Память: 0.46 MB
Время: 0.007 c
7-77212
pavlentii
2003-03-05 15:51
2003.04.24
Скрытие иконки


1-76907
titnn
2003-04-14 19:11
2003.04.24
Help! Как определить открыто PopUpMenu или закрыто ...


14-77156
Vlad Oshin
2003-04-07 08:54
2003.04.24
Supreme 2 посвящается. Таки и всколыхнул старое...


14-77124
Curator
2003-04-08 08:59
2003.04.24
F1book1.OpenDlg ( ??????? )


3-76819
lightix
2003-04-04 10:42
2003.04.24
Как заставить TDBCheckBox видеть пустоту ?





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