Текущий архив: 2003.04.24;
Скачать: CL | DM;
ВнизКак скопировать слово из другого приложения? Найти похожие ветки
← →
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 вся ветка
Текущий архив: 2003.04.24;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.01 c