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

Создание пользовательского 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
Читать статью целиком »
Просмотров: 1279 | Комментариев: 12

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

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

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

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

Таймер в консольном приложении
29.01.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter

Таймер в консольном приложении
Продолжаем раскрывать возможности консоли. Сегодня это будет выполнение действий через определенные интервалы, то есть, проще говоря, таймеры. В некоторых интернетах всплывает информация, что, мол, таймеры в консольных приложениях не поддерживаются или для этого надо городить какие-то жуткие конструкции типа отдельных потоков с проверкой времени. На самом деле консоль прекрасно работает с функцией SetTimer, только надо ее, как говорится, правильно готовить.
Читать статью целиком »
Просмотров: 1586 | Комментариев: 2

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

Обработка событий в консоли
В одной из предыдущих статей я уже рассказывал об обработке нештатных ситуаций консолью. А как у консоли обстоят дела со штатными? Оказывается, не намного хуже, чем у оконных приложений. Окно консоли может обрабатывать не только клавиатурный ввод, но и операции с мышью, установку и потерю фокуса окна, а также работу с системным меню.
Читать статью целиком »
Просмотров: 1633 | Комментариев: 2
