Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2008, 02:19   #1
Ring0Sn
Форумчанин
 
Аватар для Ring0Sn
 
Регистрация: 06.09.2007
Сообщений: 239
По умолчанию Текст из под курсора в любом месте

Наткнулся на одном форуме на интересный исходник, обсуждалось что то, вроде, как программа "QDictionary" получает текст из под курсора (она это делает практически из любого места, буть то текст в окне браузера)...

Возможно, комуто это ни о чем новом неговорит, но всеже кому то думаю покажеться интересно, тк вопросы на форуме "Текст из под курсора..." поднимаються
Код:
...
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, 300, @RecalcText)
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  KillTimer(Handle, 1)
end;

end.
зы если кто несможет импортировать Accessibility_TLB, то вот полный проект
Вложения
Тип файла: rar Project1.rar (4.6 Кб, 108 просмотров)

Последний раз редактировалось Ring0Sn; 27.07.2008 в 10:25.
Ring0Sn вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как в другом месте программы вызвать case 0? student_) Общие вопросы по Java, Java SE, Kotlin 9 11.10.2008 13:55
Дайте наводку! =) алгоритм на любом языке (как удобнее вам) volandKH Помощь студентам 2 23.07.2008 09:34
Играем за компьютером на рабочем месте annayfa Свободное общение 3 06.05.2008 09:28
Запуск БД на любом компе!!! Alexij БД в Delphi 2 17.04.2008 13:43
создать папку в том месте откуда запущен exe Stanislav Общие вопросы Delphi 1 22.11.2007 17:58