Blog. Just Blog

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

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

Парсинг метаданных файлов TAK на Ассемблере

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

Парсинг метаданных файлов TAK на Ассемблере

TAK (аббревиатура на немецком, которая расшифровывается как "Tom's lossless Audio Compressor") - это алгоритм сжатия аудиофайлов без потерь. Кодек TAK обеспечивает эффективность сжатия на уровне формата APE, достигая при этом скорости декодирования, как у популярного кодека FLAC. Формат достаточно экзотичный, при этом его понимают некоторые плееры. Но для меня главное, что формат TAK поддерживает метатеги, которые меня интересуют в плане парсинга.

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

Парсинг метаданных файлов OptimFROG на Ассемблере

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

Парсинг метаданных файлов OptimFROG на Ассемблере

OptimFROG - это аудиокодек для сжатия без потерь. Он оптимизирован для достижения максимально высокой степени сжатия и в настоящее время имеет один из лучших показателей по этому параметру. В качестве исходных данных используются WAV или RAW-файлы. При конвертировании в формат OptimFROG они сжимаются по специальному алгоритму, заточенному именно под аудиопотоки.

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

Как получить хэндл контрола, на котором находится фокус

07.11.2024 | Категория: Образ мышления: Assembler | Автор: ManHunter
Очередная мелкая развлекалочка на Ассемблере. Задача: узнать хэндл контрола в чужом окне, на котором в данный момент находится фокус. С получением активного окна проблем быть не должно, для этого достаточно вызвать функцию GetForegroundWindow. А дальше можно воспользоваться следующим кодом.
  1.         ; Получить ID текущего потока
  2.         invoke  GetCurrentThreadId
  3.         mov     [current],eax
  4.  
  5.         ; Получить хэндл активного окна
  6.         invoke  GetForegroundWindow
  7.         ; Получить ID потока чужого окна
  8.         invoke  GetWindowThreadProcessId,eax,tmp
  9.         mov     [remote],eax
  10.  
  11.         ; Подключиться к обработке ввода данных
  12.         invoke  AttachThreadInput,[remote],[current],TRUE
  13.         or      eax,eax
  14.         jz      .processed
  15.  
  16.         ; Получить хэндл активного контрола
  17.         invoke  GetFocus
  18.         or      eax,eax
  19.         jz      @f
  20.  
  21.         ; EAX -> хэндл активного контрола
  22. @@:
  23.         ; Отключиться от обработки ввода данных
  24.         invoke  AttachThreadInput,[remote],[current],FALSE
Первым делом узнаем идентификатор текущего потока своего процесса и идентификатор потока чужого окна, для которого надо решить описанную выше задачу. С помощью функции AttachThreadInput подключаем наш процесс к обработке ввода чужого окна. После этого нам становится доступна функция GetFocus, с помощью которой можно получить интересующий нас хэндл. Узнав нужные данные, обработку ввода надо отключить.

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

Работа с регулярными выражениями на Ассемблере

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

Работа с регулярными выражениями на Ассемблере

Без преувеличения, регулярные выражения - один из самых мощных инструментов для обработки как текстовой, так и двоичной информации. В настоящее время есть немало различных внешних библиотек, классов и компонентов для работы с регулярками, но не стоит забывать, что в арсенале программиста есть и встроенные в систему средства, которые позволяют реализовать практически все мощности этой технологии. Вот сегодня о них и поговорим.

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

Парсинг метаданных MIDI-файлов на Ассемблере

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

Парсинг метаданных MIDI-файлов на Ассемблере

MIDI - "цифровой интерфейс музыкальных инструментов" - стандарт цифровой звукозаписи на формат обмена данными между электронными музыкальными инструментами. В отличие от других форматов это не оцифрованный звук, а наборы команд (проигрываемые ноты, ссылки на проигрываемые инструменты, значения изменяемых параметров звука), которые могут воспроизводиться по-разному в зависимости от устройства воспроизведения. Это позволяет реализовывать устройства, производящие аранжировку по заданным аккордам, а также приложения для воспроизведения и визуализации звука.

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

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2025
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.08 сек. / MySQL: 3 (0.0182 сек.) / Память: 4.5 Mb
Наверх