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

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

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

Как закрепить программу в панели задач на Ассемблере
20.09.2016 | Категория: Образ мышления: Assembler | Автор: ManHunter

Как закрепить программу в панели задач на Ассемблере
В Windows 7 есть возможность закрепления часто используемых программ прямо на панели задач. Что-то типа панели быстрого запуска предыдущих версий Windows, только более ущербное. Некоторые инсталляторы автоматически закрепляют устанавливаемые ими программы на панели задач без подтверждения пользователя, и мне стало интересно, как это можно сделать программным путем. В качестве языка для реализации, естественно, был выбран Ассемблер, но тут используются стандартные WinAPI, так что можно без проблем переписать на любой другой язык программирования.
Читать статью целиком »
Просмотров: 2900 | Комментариев: 9

Работа с INI-файлами на Ассемблере
21.06.2016 | Категория: Образ мышления: Assembler | Автор: ManHunter

Работа с INI-файлами на Ассемблере
Конфигурационные ini-файлы появились в самых первых версиях Windows. Изначально в них хранились только настройки Windows, а затем они стали использоваться для хранения параметров других приложений. Начиная с Windows 95, Microsoft объявил ini-файлы устаревшими и с тех пор предлагает использовать системный реестр для хранения всех настроек и данных программ. Лично я считаю, что приложения должны быть легко переносимыми между компьютерами, а также легко и полностью деинсталлироваться, поэтому внедрение в систему должно быть минимальным. Хранение всех настроек в ini-файле или в xml-файле в папке с программой - это, на мой взгляд, самое правильное решение, а в реестр нужно залезать только в случае крайней необходимости.
Читать статью целиком »
Просмотров: 4549 | Комментариев: 5

Windows 7 Taskbar API на Ассемблере
30.06.2010 | Категория: Образ мышления: Assembler | Автор: ManHunter

Progress Bars и Overlay Icons
Продолжаю потихоньку осваивать внутренности Windows 7. В новой системе появилась такая приятная фича интерфейса, как отображение прогресса выполнения какого-нибудь действия прямо на кнопке приложения в панели задач. Впервые я увидел это в программе Total Commander при копировании и переносе файлов, сразу очень захотелось узнать как это делается и научиться делать самому. К сожалению, во всех доступных мне интернетах были найдены только примеры для Delphi, .NET и прочих языков высокого уровня. Пришлось лезть в отладчик и запасаться железным терпением, зато в результате получилось вполне рабочее решение. Для управления элементами панели задач в Windows 7 используется COM-интерфейс ITaskBarList3. Как обычно, никаких описаний в FASM нет, и все необходимое нужно искать самому или портировать с других языков.
Code (Assembler) : Убрать нумерацию
- ; GUID {56FDF344-FD6D-11D0-958A-006097C9A090}
- CLSID_TaskbarList dd 056FDF344h
- dw 0FD6Dh
- dw 011D0h
- db 095h, 08Ah, 000h, 060h, 097h, 0C9h, 0A0h, 090h
- ; GUID {EA1AFB91-9E28-4B86-90E9-9E9F8A5EEFAF}
- IID_ITaskbarList3 dd 0EA1AFB91h
- dw 09E28h
- dw 04B86h
- db 090h, 0E9h, 09Eh, 09Fh, 08Ah, 05Eh, 0EFh, 0AFh
- ; ITaskbarList3 Interface
- SetProgressValue = 4*09
- SetProgressState = 4*10
- RegisterTab = 4*11
- UnregisterTab = 4*12
- SetTabOrder = 4*13
- SetTabActive = 4*14
- ThumbBarAddButtons = 4*15
- ThumbBarUpdateButtons = 4*16
- ThumbBarSetImageList = 4*17
- SetOverlayIcon = 4*18
- SetThumbnailTooltip = 4*19
- SetThumbnailClip = 4*20
- ; Типы прогрессбаров на панели задач
- TBPF_NOPROGRESS = 0
- TBPF_INDETERMINATE = 1
- TBPF_NORMAL = 2
- TBPF_ERROR = 4
- TBPF_PAUSED = 8
- ; Константы для работы с объектом
- CLSCTX_INPROC_SERVER = 1
- S_OK = 0
Читать статью целиком »
Просмотров: 8264 | Комментариев: 11
