Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
получение текста из под курсора
novichokДата: Пт, 11 Сентября 2020, 02:13 | Сообщение # 1
Приколист
Всем привет. Вопрос собственно в том чтоб в любом окне что на переднем плане, извлекать текст который под курсором.

Добавлено (21 Сентября 2020, 05:58)
---------------------------------------------
procedure TForm1.Timer1Timer(Sender: TObject);
begin
RecalcText;
Label1.Caption := g_pszText;
end;

private
{ Private declarations }
g_pszText: String;
g_pt: TPoint;
procedure RecalcText;
end;
[spoiler]
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;

на подобие этого можно прикрутить к HB?

 
СообщениеВсем привет. Вопрос собственно в том чтоб в любом окне что на переднем плане, извлекать текст который под курсором.

Добавлено (21 Сентября 2020, 05:58)
---------------------------------------------
procedure TForm1.Timer1Timer(Sender: TObject);
begin
RecalcText;
Label1.Caption := g_pszText;
end;

private
{ Private declarations }
g_pszText: String;
g_pt: TPoint;
procedure RecalcText;
end;
[spoiler]
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;

на подобие этого можно прикрутить к HB?


Автор - novichok
Дата добавления - 11 Сентября 2020 в 02:13
mishemДата: Пн, 21 Сентября 2020, 10:24 | Сообщение # 2
Эксперт форума
Если мне память не изменяет, то по моему с каким то плагином (не помню название, автоулт или как то так) можно попробовать это сделать. Нужно определить окно, объект под курсором в этом окне и т.д. Он по моему умеет это делать.

Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеЕсли мне память не изменяет, то по моему с каким то плагином (не помню название, автоулт или как то так) можно попробовать это сделать. Нужно определить окно, объект под курсором в этом окне и т.д. Он по моему умеет это делать.

Автор - mishem
Дата добавления - 21 Сентября 2020 в 10:24
ВадимДата: Пн, 21 Сентября 2020, 20:26 | Сообщение # 3
Генератор идей
Да, есть похожие по смыслу команды в плагине RacAutoIt3x 1.0 (Roman Avalos Castillo).

Но я не пробовал их применять:

RAC_ControlGetText
Получить текст управляющего элемента.

RAC_StatusbarGetText
Получить текст из строки состояния окна.

RAC_WinGetText
Получить текст из окна в переменную [RAC_return].


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеДа, есть похожие по смыслу команды в плагине RacAutoIt3x 1.0 (Roman Avalos Castillo).

Но я не пробовал их применять:

RAC_ControlGetText
Получить текст управляющего элемента.

RAC_StatusbarGetText
Получить текст из строки состояния окна.

RAC_WinGetText
Получить текст из окна в переменную [RAC_return].

Автор - Вадим
Дата добавления - 21 Сентября 2020 в 20:26
mishemДата: Пн, 21 Сентября 2020, 22:54 | Сообщение # 4
Эксперт форума
Цитата Вадим ()
Но я не пробовал их применят

Так попробуй, кто мешает?
:D


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата Вадим ()
Но я не пробовал их применят

Так попробуй, кто мешает?
:D

Автор - mishem
Дата добавления - 21 Сентября 2020 в 22:54
ВадимДата: Чт, 24 Сентября 2020, 16:26 | Сообщение # 5
Генератор идей
Дык, потребности не было ещё такой :D

Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеДык, потребности не было ещё такой :D

Автор - Вадим
Дата добавления - 24 Сентября 2020 в 16:26
  • Страница 1 из 1
  • 1
Поиск: