![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить слово под курсором из любой программы?
Имя не скажу © (2006-07-29 01:02:00)В одном форуме раскопал:
implementation
{$R *.dfm}
uses
Accessibility_TLB; // Импортировать из oleacc.dll
function AccessibleObjectFromPoint(Pt: TPoint; var Acc: IAccessible; var Child: Variant): HRESULT;
stdcall; external 'OleAcc.dll' name 'AccessibleObjectFromPoint';
var
OldPoint: TPoint;
procedure RecalcText(Wnd: HWND; uMsg, idEvent: UINT; dwTime: DWORD); stdcall;
var
P: TPoint;
A: IAccessible;
V: Variant;
begin
if GetCursorPos(P) and ((P.X <> OldPoint.X) or (P.Y <> OldPoint.Y)) then
begin
OldPoint := P;
if Succeeded(AccessibleObjectFromPoint(P, A, V)) then
Form1.Caption := A.accName[V]
else
Form1.Caption := ''
end
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
SetTimer(Handle, 1, 1000, @RecalcText)
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
KillTimer(Handle, 1)
end;
Но он получает целое предложение под курсором, а никак не отдельное слово. Как этого добиться?
Имя не скажу (2006-07-31 23:29:00) [21]Проблема в том, что эта прога возвращает полностью предложение, над которым он сейчас стоит, а мне нужно узнать именно слово.
Германн (2006-07-29 01:48:00) [22]Ну и. Так в чём сбс-но проблема?
Не то "раскопал" что-ли?
Имя не скажу (2006-07-29 01:20:00) [23]
> 2 Имя не скажу
> А я и не хочу спрашивать. :-)
Все равно не скажу ))))
> А кто "он"?
> У "него" и спрашивай!
Моя (т.е.) раскопанная программа, конечно)
Германн (2006-07-29 01:16:00) [24]2 Имя не скажу
А я и не хочу спрашивать. :-)
> Но он получает целое предложение под курсором, а никак не
> отдельное слово. Как этого добиться?
А кто "он"?
У "него" и спрашивай!
Сам "раскопал", сам и "закапывай"! :-)