Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Как получить текст под курсором

18.11.2020 | Категория: Образ мышления: Assembler | Автор: ManHunter
Технология Microsoft Active Accessibility предназначена для взаимодействия различных устройств типа экранных читалок с объектами на экране, чтобы облегчить работу с компьютером людям с ограниченными физическими возможностями. При помощи Microsoft Active Accessibility, например, можно узнать, над каким элементом экрана находится курсор мыши, а также получить тип и содержимое этого элемента. Этим мы и воспользуемся, чтобы получить текст под курсором.

С технологией MSAA мы уже познакомились в статье про перехват Alt+Tab, только не заостряли внимание, что это именно она. Зато не придется дублировать структуры и интерфейсы, они уже описаны в статье по ссылке. Поэтому сразу переходим к программированию.
  1.         ; Получить координаты курсора
  2.         invoke  GetCursorPos,curs
  3.         ; Получить объект под курсором
  4.         invoke  AccessibleObjectFromPoint,[curs.x],[curs.y],pAcc,varChild
По таймеру или по какому-то другому событию получаем текущие координаты курсора, затем при помощи функции AccessibleObjectFromPoint получаем объект, который находится на экране по этим координатам. В случае удачного вызова, она возвращает указатель на интерфейс IAccessible объекта. Теперь можно попробовать получить текст под курсором, но сперва небольшое отступление.
  1.         ; Получить роль объекта под курсором
  2.         mov     [role.vt],VT_I4
  3.         push    role
  4.         mov     eax,varChild
  5.         push    dword [eax+0Ch]
  6.         push    dword [eax+08h]
  7.         push    dword [eax+04h]
  8.         push    dword [eax]
  9.         mov     eax,[pAcc]
  10.         mov     eax,[eax]
  11.         stdcall dword [eax+IAccessible.get_accRole],[pAcc]
  12.         ; [role.lVal] -> код роли объекта (кнопка, полоса прокрутки, текст и т.п.)
Роль зависит от типа элемента интерфейса. Это может быть текст, заголовок окна, пункт меню, полоса прокрутки, кнопка, чекбокс, клиентская область окна и так далее. На основании этих данных вспомогательное устройство принимает решение, каким образом можно взаимодействовать с объектом под курсором и какие данные от него можно ожидать.

Читать статью целиком »
Просмотров: 121 | Комментариев: 0

Программное отключение и подключение монитора

08.11.2020 | Категория: Образ мышления: Assembler | Автор: ManHunter

Программное отключение и подключение монитора

С программным выключением мониторов уже разобрались, сегодня разберем более жесткое действие - отключение. Принципиальную разницу между выключением и отключением, надеюсь, объяснять не надо. Конечно, программно выдернуть видеокабель из системника невозможно, но можно сделать так, чтобы система просто перестала воспринимать этот монитор.

Читать статью целиком »
Просмотров: 269 | Комментариев: 1

Как узнать модель и серийный номер монитора

17.10.2020 | Категория: Образ мышления: Assembler | Автор: ManHunter

Как узнать модель и серийный номер монитора

EDID - Extended Display Identification Data - стандарт формата данных VESA, расширенные данные идентификации дисплея. Эта информация передается монитором или телевизором на устройство, которое генерирует видео сигнал. EDID содержит базовую информацию о мониторе и его возможностях, включая информацию о производителе, максимальном размере, цветовых характеристиках, заводских таймингах, границах частотного диапазона и другие технические данные. Кроме этого в EDID записаны строки, содержащие модель монитора и его серийный номер. Вот они-то нас и интересуют.

Читать статью целиком »
Просмотров: 425 | Комментариев: 0

VESA Commander 1.3

07.10.2020 | Категория: Мои программы | Автор: ManHunter

Скриншот программы VESA Commander

VESA Commander - консольная программа для получения различной технической информации и тестирования мониторов с поддержкой стандарта VESA DDC/CI. Она позволяет получить текущее значение и описание любого из поддерживаемых монитором VCP кодов, а также изменить это значение, если это возможно. Таким образом, например, вы можете включить или выключить монитор, поменять язык экранных подсказок, изменить яркость или контрастность, выбрать цветовой профиль, а также сделать со своим монитором еще много чего интересного. Список VCP кодов стандартизирован и описан в документе VESA Monitor Control Command Set (MCCS), там же приводится формат и описание большинства значений передаваемых и получаемых параметров.

Читать статью целиком »
Просмотров: 2023 | Комментариев: 25

Hotkey Helper 1.1

21.09.2020 | Категория: Мои программы | Автор: ManHunter

Скриншот программы Hotkey Helper

Небольшая программа-помощник для программистов. Показывает коды нажатых клавиш, значения параметров wParam и lParam сообщений WM_KEYDOWN, WM_KEYUP, WM_CHAR, WM_SYSKEYDOWN, WM_SYSKEYUP, WM_UNICHAR, WM_APPCOMMAND (мультимедийные клавиши), WM_DEADCHAR и WM_SYSDEADCHAR (умляуты, акуты, ударения и подобные модификаторы), а также коды горячих клавиш из поля msctls_hotkey32. Предусмотрены отдельные версии для работы с юникодом и ANSI. Программа написана для личных нужд, но может быть пригодится кому-нибудь еще.

Читать статью целиком »
Просмотров: 907 | Комментариев: 23

prev 01 02 03 04 05 06 07 08 09 ... 29
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2020
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 3 (0.0425 сек.) / Память: 4.75 Mb
Наверх