
Быстрый поиск
Введите фрагмент названия статьи для поиска
Как получить список подсказок у иконок в трее
23.01.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter
Сегодня снова будем издеваться над треем. На этот раз для доступа к данным в трее будем использовать средства интерфейса IAccessible, ранее мы его уже применяли, но немного для других задач.Структуры, константы, интерфейсы и все остальное уже расписано в статье по ссылке выше, дублировать не буду. Как пройтись по иерархии окон Проводника и получить хэндл трея с иконками тут тоже было немало примеров. Переходим к основной части.
Code (Assembler) : Убрать нумерацию
- ; Получить информацию о выбранном элементе
- ; [hTray] - хэндл окна трея с иконками
- invoke AccessibleObjectFromWindow,[hTray],OBJID_CLIENT,\
- CLSID_IAccessible,pAcc
- ; Количество элементов в окне
- mov eax,[pAcc]
- mov eax,[eax]
- stdcall dword [eax+IAccessible.get_accChildCount],[pAcc],tmp
- invoke wsprintf,buff,mask1,[tmp]
- add esp,12
- stdcall AddLog,[hwmain],ID_LOG,buff
- ; Начинаем перебирать с 1 элемента
- mov ebx,1
- loc_loop:
- ; Выделить память под строку
- invoke SysAllocString,szNull
- mov [bstrName],eax
- ; Получить название выбранного элемента
- push [bstrName]
- mov [varChild.vt],VT_I4
- mov [varChild.lVal],ebx
- 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_accName],[pAcc]
- ; Строка подсказки
- mov eax,[bstrName]
- mov eax,[eax]
- ; EAX -> строка подсказки
- ; Прибраться за собой
- invoke SysFreeString,[bstrName]
- ; Следующий элемент
- inc ebx
- cmp ebx,[tmp]
- jbe loc_loop
- ; Прибраться за собой
- mov eax,[pAcc]
- mov eax,[eax]
- stdcall dword [eax+IAccessible.Release],[pAcc]
Читать статью целиком »
Просмотров: 791 | Комментариев: 7
Как узнать локальный IP-адрес компьютера
17.01.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter

Как узнать локальный IP-адрес компьютера
Очередной небольшой сниппет, который может пригодиться в работе. Получение IP-адреса компьютера, на котором запущено приложение. Обратите внимание, что это будет локальный адрес, например, который прописан на роутере.
Читать статью целиком »
Просмотров: 811 | Комментариев: 0
Распаковка данных в формате LZRW1 на Ассемблере
20.12.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter

Распаковка данных в формате LZRW1 на Ассемблере
Алгоритм компрессии LZRW1 был создан в далеких 90-х годах Ross N. Williams на базе оригинальных алгоритмов серии LZ77. Основной упор при разработке был сделан на максимальную скорость обработки данных, но при этом пришлось пожертвовать степенью сжатия. И действительно, по качеству сжатия LZRW1 недалеко ушел от LZ77, зато даже большие файлы упаковывает буквально за доли секунды.
Читать статью целиком »
Просмотров: 606 | Комментариев: 0
Windows Error Codes Helper 1.1
18.12.2023 | Категория: Мои программы | Автор: ManHunter

Сериншот программы Windows Error Codes Helper
Программа-справочник кодов и описаний ошибок Windows. Всего в базе содержится около 30.000 кодов ошибок, собранных из различных источников: ошибки обновления, коды возврата системных API, коды завершения операций, числовые коды статусов событий и т.п. Большинство ошибок имеют текстовое описание, но даже если описания нет, по названию константы с кодом ошибки можно достаточно точно определить ее источник. Кроме готовой базы программа дополнительно пытается запрашивать описание ошибки через системные функции или из выбранной динамической библиотеки.
Читать статью целиком »
Просмотров: 1798 | Комментариев: 12
Распаковка данных в формате LZF на Ассемблере
14.12.2023 | Категория: Образ мышления: Assembler | Автор: ManHunter

Распаковка данных в формате LZF на Ассемблере
Первоначально алгоритм компрессии LZF был разработан Marc Lehmann, но в последующем был немного оптимизирован и облегчен Ильей Муравьевым. По степени сжатия находится в одном ряду с LZE и LZ4, а по скорости упаковки и распаковки показывает просто отличные результаты. При этом основная оптимизация сжатия достигается при упаковке текстовых данных.
Читать статью целиком »
Просмотров: 606 | Комментариев: 1


