Blog. Just Blog

Образ мышления: Assembler

То, что не удается запрограммировать на Ассемблере, приходится паять
Образ мышления: Assembler - RSS-канал Образ мышления: Assembler - Карта сайта

Проверка доступности URL на Ассемблере

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

Проверка доступности URL на Ассемблере

Понадобилась функция проверки доступности определенного URL. Под доступностью я понимаю успешное соединение с сервером и получение от него корректного ответа с кодом 200. Дополнительно к проверке доступности я сделал возможность запрашивать размер файла по ссылке без скачивания самого файла.

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

Как закрепить программу в панели задач на Ассемблере

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

Как закрепить программу в панели задач на Ассемблере

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

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

Красивый градиентный ProgressBar на Ассемблере

25.07.2016 | Категория: Образ мышления: Assembler | Автор: ManHunter
Элемент ProgressBar, он же индикатор прогресса, используется в тех случаях, когда нужно показать пользователю степень завершения какого-либо действия. Есть стандартный элемент msctls_progress32, но он практически не поддается настройке в плане дизайна. Например, его нельзя сделать градиентным, чтобы заливка плавно перетекала от зеленого, через желтый и до красного. Но можно нарисовать красивую полосу ProgressBar самостоятельно. Идею я позаимствовал у kero, знаю, что он сюда иногда заглядывает и надеюсь, что он будет не против. Оригинал написан на MASM, я доработал его и портировал на FASM.


Принцип создания градиентного ProgressBar

Принцип создания градиентного прогрессбара заключается в том, что на элемент STATIC на всю его площадь накладывается готовое изображение. Затем создается дополнительное непрозрачное окно, являющееся дочерним к STATIC и расположенное поверх него. Регулируя размер и положение этого дочернего окна, открывается та или иная площадь изображения, пропорционально нужному проценту заполнения. Это чем-то напоминает создание рейтингов на CSS. Еще одна хитрость заключается в том, что изображение прогрессбара загружается из ресурсов функцией LoadImage, которая позволяет сразу указывать нужные размеры. Если исходное изображение меньше, то оно автоматически растягивается. Таким образом, для создания цветного прогрессбара достаточно однопиксельного изображения, а из крохотного bitmap'а шириной всего в три пиксела получается красивый градиентный прогрессбар любого размера.

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

Работа с INI-файлами на Ассемблере

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

Работа с INI-файлами на Ассемблере

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

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

Самоудаляющийся файл

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

Самоудаляющийся файл

Небольшая, но в то же время полезная развлекуха - самоудаляющийся исполняемый файл. Во времена MS-DOS подобным фокусом никого было не удивить, там операционная система позволяла писать что угодно куда угодно, и даже удалять исполняемый файл во время его выполнения (хе-хе...). С появлением Windows вольница закончилась. Если файл запущен, то до того, как он завершит работу, ничего с ним сделать не получится. Но из этого правила есть одно исключение - так называемые пакетные или bat-файлы. Они выполняются не как самостоятельное приложение, а как набор инструкций для командного процессора, поэтому запросто могут удалять сами себя. Этим мы и воспользуемся для решения нашей задачи. Вот пример пакетного файла, который сперва пытается удалить файл по заданному пути, а затем самоуничтожается.

:loc
del "D:\Path\file.exe"
if exist "D:\Path\file.exe" goto loc
del %0

Проверка и цикл нужны для того, чтобы дождаться момента, когда файл освободится и станет доступным для ликвидации. Команда "del %0" удаляет bat-файл, в котором она выполняется, без привязки к его имени. Теперь, чтобы наш исполняемый файл самоудалялся, он должен выполнить следующие действия: получить имя и путь выполняемого файла, сформировать bat-файл, запустить его и завершить работу. bat-файл дождется окончания работы исполняемого файла, удалит его, затем удалит сам себя.

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

prev 01 ... 06 07 08 09 10 11 12 ... 34 next
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2019
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.11 сек. / MySQL: 2 (0.0026 сек.) / Память: 5 Mb
Наверх