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

Обработка Drag'n'Drop в разные поля ввода
28.03.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
В статье об обработке перетаскивания файлов я упомянул про раздельную обработку перетаскивания файлов в разные поля. В частности про вариант с субклассированием. Теперь расскажу, как это делается. Предположим, что у нас на форме есть три поля для выбора файла, причем каждое должно работать независимо.Code (Assembler) : Убрать нумерацию
- ; Разрешить каждому полю принимать файлы
- invoke GetDlgItem,[hwnddlg],ID_FILE1
- mov ebx,eax
- invoke DragAcceptFiles,ebx,TRUE
- ; Установить наш собственный обработчик
- invoke SetWindowLong,ebx,GWL_WNDPROC,EditWindowProc
- ; Сохранить хэндл предыдущего обработчика
- invoke SetWindowLong,ebx,GWL_USERDATA,eax
- invoke GetDlgItem,[hwnddlg],ID_FILE2
- mov ebx,eax
- invoke DragAcceptFiles,ebx,TRUE
- ; Установить наш собственный обработчик
- invoke SetWindowLong,ebx,GWL_WNDPROC,EditWindowProc
- ; Сохранить хэндл предыдущего обработчика
- invoke SetWindowLong,ebx,GWL_USERDATA,eax
- invoke GetDlgItem,[hwnddlg],ID_FILE3
- mov ebx,eax
- invoke DragAcceptFiles,ebx,TRUE
- ; Установить наш собственный обработчик
- invoke SetWindowLong,ebx,GWL_WNDPROC,EditWindowProc
- ; Сохранить хэндл предыдущего обработчика
- invoke SetWindowLong,ebx,GWL_USERDATA,eax
Читать статью целиком »
Просмотров: 713 | Комментариев: 3

Получение длительности MP3-файлов на Ассемблере
20.03.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter

Получение длительности MP3-файлов на Ассемблере
Вот и анонсированная ранее "другая история" про некорректное определение длительности MP3-файлов при использовании системных функций. При тестировании своих программ я нашел уже несколько таких файлов. Что интересно, на ошибочный результат размер файлов не влияет, это, как мне кажется, происходит из-за очень упрощенного расчета, который используется системой. Расчехляем Ассемблер, будем парсить внутреннюю структуру MP3 самостоятельно.
Читать статью целиком »
Просмотров: 890 | Комментариев: 0

Создание пользовательского MessageBox с помощью SoftModalMessageBox
14.03.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Ранее я уже рассказывал, каким образом можно кастомизировать стандартный MessageBox при помощи хуков, в частности, менять надписи на кнопках. Сегодня разберем создание MessageBox с помощью недокументированной функции SoftModalMessageBox. В качестве единственного параметра она принимает указатель на структуру MSGBOXDATA, которая тоже относится к недокументированным:Code (Assembler) : Убрать нумерацию
- struct MSGBOXDATA
- params MSGBOXPARAMS
- pwndOwner dd ? ; Хэндл окна-владельца
- wLanguageId dd ? ; Идентификатор языка
- pidButton dd ? ; Массив с идентификаторами кнопок
- ppszButtonText dd ? ; Массив с указателями на строки текста
- cButtons dd ? ; Количество кнопок в окне
- DefButton dd ? ; Кнопка по умолчанию
- CancelId dd ? ; Идентификатор кнопки отмены
- Timeout dd ? ; Таймаут окна
- Unknown rd 5 ; Зарезервировано
- ends
Читать статью целиком »
Просмотров: 1216 | Комментариев: 12

Парсинг метаданных MP3-файлов на Ассемблере
27.02.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter

Парсинг метаданных MP3-файлов на Ассемблере
В одной из предыдущих статей я рассказал, как можно получить данные из различных тегов MP3-файлов. Но, как выяснилось, системная реализация не в состоянии корректно обработать некоторые строковые данные. Например, название исполнителя "To/Die/For" обрезается до строки "To". Это связано с особенностями стандарта ID3v2.3, в котором символ слеша является служебным и используется для разделения нескольких значений. При этом в заголовке MP3-файла версия тегов может быть обозначена как ID3v2.4, в которой это ограничение снято, но система все равно будет обрабатывать данные по более старому стандарту. И вот опять, если хочешь сделать что-то хорошо, сделай это сам.
Читать статью целиком »
Просмотров: 1417 | Комментариев: 11

GIF-анимация на Ассемблере
18.02.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter

GIF-анимация на Ассемблере
Выводить статическое изображение на форму мы уже научились, причем разными способами, теперь давайте попробуем вывести анимированный GIF-файл. Для этого даже не понадобится углубляться в дебри формата, будем работать с высокоуровневыми функциями GDI+.
Читать статью целиком »
Просмотров: 1322 | Комментариев: 7
