#pas
Как получить текст под курсором (указателем мыши)
Microsoft Active Accessibility - это технология, которая предоставляет информацию об объектах на экране для вспомогательных средств, таких как читалки экранов (screen readers). Но это не означает, что только читалки экранов могут использовать её.
Вот программа, которая показывает использование Active Accessibility на самом зачаточном уровне: чтение текста. В Active Accessibility есть намного больше всего, чем только чтение текста. Вы можете перемещаться по объектам на экране, читать различные свойства, даже ссылаться на команды по ним - и всё это программно.
Создайте новое приложение, положите на форму метку и таймер, и напишите такой обработчик OnTimer:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
RecalcText;
Label1.Caption := g_pszText;
end;
Конечно же, самая интересная часть заключена в процедуре RecalcText, которая получает текст под курсором мыши:
private
{ Private declarations }
g_pszText: String;
g_pt: TPoint;
procedure RecalcText;
end;
...
uses
OleAcc;
function AccessibleObjectFromPoint(ptScreen: TPoint; out ppacc: IAccessible; out pvarChild: Variant): HRESULT; stdcall; external 'oleacc.dll';
procedure TForm1.RecalcText;
var
pt: TPoint;
pacc: IAccessible;
vtChild: Variant;
bsName, bsValue: WideString;
begin
if GetCursorPos(pt) and ((pt.x <> g_pt.x) or (pt.y <> g_pt.y)) then
begin
g_pt := pt;
if (SUCCEEDED(AccessibleObjectFromPoint(pt, pacc, vtChild))) then
try
bsName := '';
bsValue := '';
pacc.get_accName(vtChild, bsName);
pacc.get_accValue(vtChild, bsValue);
g_pszText := 'Name: ' + bsName + #13#10'Value: ' + bsValue;
finally
VarClear(vtChild);
pacc := nil;
end;
end;
end;
Давайте посмотрим на эту функцию. Мы начинаем с того, что берём позицию мышиного курсора и смотрим: изменился ли он с последнего раза. Если да - тогда мы просим функцию AccessibleObjectFromPoint найти нам объект по этим координатам и вернуть экземпляр IAccessible плюс идентификатор потомка (child). Эти два кусочка информации и представляют объект под курсором.
В итоге всё сводится к простому запросу имени (get_accName) и значения (get_accValue) объекта и показе их на форме.
Для получения дальнейшей информации о accessibility - почитайте сайт Сары Форд, в частности, сообщение What is Assistive Technology Compatibility.
кто в IC разбирается может сможет это реализовать , но не понятно , там речь идёт о рабочем столе или это и в проводнике
работать будет ?
в IC схем в предидущих постах походу тоже самое
в общем нужно потестить ...