Быстрый поиск
Введите фрагмент названия статьи для поиска
Встроенный браузер в приложении на Ассемблере
06.07.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Встроенный браузер в приложении на Ассемблере
Сегодня будем рисовать свой браузер, а точнее внедрять фрейм web-браузера в интерфейс нашего приложения. Нечто подобное мы уже делали, но там были отдельные страницы, а сейчас полноценный браузер, встроенный в приложение. Языком исполнения, естественно, будет Ассемблер.
Читать статью целиком »
Просмотров: 1261 | Комментариев: 9
Продвинутая работа с буфером обмена на Ассемблере
17.04.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Продвинутая работа с буфером обмена на Ассемблере
Еще одна статья, посвященная работе с буфером обмена. Обычно для этого используются функции GetClipboardData и SetClipboardData, но сегодня мы будем осваивать новый уровень - чтение и запись различных данных в буфер обмена при помощи OLE-функций. Хорошая практика для закрепления навыков работы с объектами.
Читать статью целиком »
Просмотров: 1686 | Комментариев: 0
Работа с метаданными MP3-файлов на Ассемблере
23.11.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
Работа с метаданными MP3-файлов на Ассемблере
Во многих файлах, в частности музыкальных и видео, присутствуют особые блоки данных, так называемые метаданные или теги. Метаданные содержат информацию о названии композиции и альбома, имени исполнителя, жанре, номере трека и т.п. Их используют программные и аппаратные проигрыватели, каталогизаторы и другие средства для работы с мультимедийными файлами. Давайте посмотрим, как можно получить теги из MP3-файла или изменить их средствами самой системы без ручного парсинга внутренней структуры файла.
Читать статью целиком »
Просмотров: 1080 | Комментариев: 5
Управление громкостью звука в системе
15.11.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
Управление громкостью звука в системе
Сегодня разберем пример, как программно изменить громкость звука в Windows. В старых версиях Windows для этого использовались waveform-функции с очень неудобными параметрами. Управлять громкостью с помощью эмуляции мультимедийных клавиш тоже не самое лучшее решение. Но, к счастью, прогресс не стоит на месте.
Читать статью целиком »
Просмотров: 1523 | Комментариев: 9
Получение списка программ, закрепленных на панели задач
15.04.2021 | Категория: Образ мышления: Assembler | Автор: ManHunter
В одной из старых статей о работе с панелью задач я написал, что узнать список закрепленных программ можно перебором ярлыков в папке %APPDATA%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar. Действительно, это можно сделать и так, но лучше делать это правильно, с использованием предназначенных для этого COM-интерфейсов системы. Начнем с описания констант, GUID и интерфейсов, которые нам понадобятся для работы.Code (Assembler) : Убрать нумерацию
- CLSCTX_INPROC_SERVER = 1
- S_OK = 0
- ; Windows Vista
- ; GUID {C3C6EB6D-C837-4EAE-B172-5FEC52A2A4FD}
- IID_IPinnedList dd 0C3C6EB6Dh
- dw 0C837h
- dw 04EAEh
- db 0B1h, 072h, 05Fh, 0ECh, 052h, 0A2h, 0A4h, 0FDh
- ; Windows 7, 8, 8.1
- ; GUID {BBD20037-BC0E-42F1-913F-E2936BB0EA0C}
- IID_IPinnedList2 dd 0BBD20037h
- dw 0BC0Eh
- dw 042F1h
- db 091h, 03Fh, 0E2h, 093h, 06Bh, 0B0h, 0EAh, 00Ch
- ; Windows 10 build 1809+
- ; GUID {0DD79AE2-D156-45D4-9EEB-3B549769E940}
- IID_IPinnedList3 dd 00DD79AE2h
- dw 0D156h
- dw 045D4h
- db 09Eh, 0EBh, 03Bh, 054h, 097h, 069h, 0E9h, 040h
- ; IID_IPinnedList Interface
- struct IPinnedList
- ; IUnknown
- QueryInterface dd ? ; 000h
- AddRef dd ? ; 004h
- Release dd ? ; 008h
- ; IPinnedList
- EnumObjects dd ? ; 00Ch
- Modify dd ? ; 010h
- GetChangeCount dd ? ; 014h
- IsPinnable dd ? ; 018h
- Resolve dd ? ; 01Ch
- IsPinned dd ? ; 020h
- ends
- ; GUID {90AA3A4E-1CBA-4233-B8BB-535773D48449}
- CLSID_TaskbarPin dd 090AA3A4Eh
- dw 01CBAh
- dw 04233h
- db 0B8h, 0BBh, 053h, 057h, 073h, 0D4h, 084h, 049h
- ; IID_IEnumFullIDList Interface
- struct IEnumFullIDList
- ; IUnknown
- QueryInterface dd ?
- AddRef dd ?
- Release dd ?
- ; IEnumFullIDList
- Next dd ?
- Skip dd ?
- Reset dd ?
- Clone dd ?
- ends
Читать статью целиком »
Просмотров: 1033 | Комментариев: 0