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

Тестовые имена файлов в Windows
04.03.2021 | Категория: Software | Автор: ManHunter

Тестовые имена файлов в Windows
Можно во многом упрекать компанию Microsoft, но стоит признать, что они делают огромную работу для обеспечения обратной совместимости. Многие программы, написанные еще во времена Windows 95, скорее всего без проблем запустятся даже на современных системах. В Windows используется технология Application Shimming, которая позволяет приложениям, разработанным для более ранних версий ОС Windows, продолжать работу в последней версии Windows. В базах данных Shim содержится несколько тысяч записей определения того, следует ли и как следует регулировать запуск того или иного приложения.
Читать статью целиком »
Просмотров: 151 | Комментариев: 2

Hotkey Helper 1.2
21.12.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. Программа написана для личных нужд, но может быть пригодится кому-нибудь еще.
Читать статью целиком »
Просмотров: 1322 | Комментариев: 27

Как узнать, что приложение запущено через ярлык
29.11.2020 | Категория: Образ мышления: Assembler | Автор: ManHunter
Очередная развлекушка на Ассемблере. Давайте узнаем, была ли наша программа запущена через .lnk-файл, то есть через ярлык, или же напрямую через Проводник, файловый менеджер или другой процесс. Для этого надо получить структуру STARTUPINFO, а затем проверить, установлен ли флаг STARTF_TITLEISLINKNAME в поле dwFlags.Code (Assembler) : Убрать нумерацию
- STARTF_TITLEISLINKNAME = 0x800
- ; Получить информацию запуска
- mov [sinfo.cb],sizeof.STARTUPINFO
- invoke GetStartupInfo,sinfo
- ; Флаг установлен?
- test [sinfo.dwFlags],STARTF_TITLEISLINKNAME
- jz @f
- ; Да, запуск выполнен через ярлык
- ...
- @@:
- ; Нет, прямой запуск
- ...
Читать статью целиком »
Просмотров: 244 | Комментариев: 0

Как получить текст под курсором
18.11.2020 | Категория: Образ мышления: Assembler | Автор: ManHunter
Технология Microsoft Active Accessibility предназначена для взаимодействия различных устройств типа экранных читалок с объектами на экране, чтобы облегчить работу с компьютером людям с ограниченными физическими возможностями. При помощи Microsoft Active Accessibility, например, можно узнать, над каким элементом экрана находится курсор мыши, а также получить тип и содержимое этого элемента. Этим мы и воспользуемся, чтобы получить текст под курсором.С технологией MSAA мы уже познакомились в статье про перехват Alt+Tab, только не заостряли внимание, что это именно она. Зато не придется дублировать структуры и интерфейсы, они уже описаны в статье по ссылке. Поэтому сразу переходим к программированию.
Code (Assembler) : Убрать нумерацию
- ; Получить координаты курсора
- invoke GetCursorPos,curs
- ; Получить объект под курсором
- invoke AccessibleObjectFromPoint,[curs.x],[curs.y],pAcc,varChild
Code (Assembler) : Убрать нумерацию
- ; Получить роль объекта под курсором
- mov [role.vt],VT_I4
- push role
- mov eax,varChild
- push dword [eax+0Ch]
- push dword [eax+08h]
- push dword [eax+04h]
- push dword [eax]
- mov eax,[pAcc]
- mov eax,[eax]
- stdcall dword [eax+IAccessible.get_accRole],[pAcc]
- ; [role.lVal] -> код роли объекта (кнопка, полоса прокрутки, текст и т.п.)
Читать статью целиком »
Просмотров: 244 | Комментариев: 0

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

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