Blog. Just Blog

Быстрый поиск

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

Алгоритм быстрой сортировки на Ассемблере

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

Алгоритм быстрой сортировки на Ассемблере

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

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

Использование системных функций хеширования

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

Использование системных функций хеширования

Я уже выкладывал на сайте ассемблерные реализации алгоритмов хеширования MD4, MD5 и SHA1. Но в Windows есть уже готовые функции для подсчета не только этих хешей, но и некоторых других. Конечно, делать все самому гораздо приятнее для души и полезнее для мозгов, но почему бы не переложить часть работы на систему? Как говорил один мой хороший товарищ: "У лошади голова большая, вот пусть она и думает".

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

Как узнать сетевое имя компьютера и название домена

02.05.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Маленький сниппет для получения сетевого имени компьютера и названия домена. Но сперва структура, которая нам понадобится для работы.
  1. struct WKSTA_INFO_100
  2.     wki100_platform_id  dd ?
  3.     wki100_computername dd ?
  4.     wki100_langroup     dd ?
  5.     wki100_ver_major    dd ?
  6.     wki100_ver_minor    dd ?
  7. ends
C помощью функции NetWkstaGetInfo можно получить информацию о рабочей станции. Полнота информации зависит от кода запрошенной структуры и уровня доступа пользователя. Самый низкий уровень - 100-й - доступен для всех. 101-й код требует как минимум авторизованного пользователя, выше уже необходим доступ с правами администратора.
  1.         ; Запросить данные
  2.         invoke  NetWkstaGetInfo,NULL,100,lpWKSTA
  3.         or      eax,eax
  4.         jnz     loc_errror
  5.  
  6.         ; Указатель на структуру WKSTA_INFO_100
  7.         mov     ebx,[lpWKSTA]
  8.         ; [ebx+WKSTA_INFO_100.wki100_langroup] -> название домена
  9.         ; [ebx+WKSTA_INFO_100.wki100_computername] -> имя компьютера
Обратите внимание, что саму структуру WKSTA_INFO_100 в приложении хранить не надо, она создается автоматически где-то в системе. Вся работа выполняется через указатель на эту структуру.

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

Как сделать ProgressBar с надписью

21.04.2022 | Категория: Образ мышления: Assembler | Автор: ManHunter
Не перестаю удивляться, почему разработчики Microsoft с самого начала не реализовали "из коробки" очевиднейшие решения. Например, есть хороший и удобный элемент диалоговых окон - Progress Bar. Легко реализовать, удобно управлять, но по какой-то причине нет никаких инструментов, чтобы системными средствами наложить на индикатор прогресса какую-нибудь надпись типа "42% завершено". Градиентный ProgressBar мы уже делали, настала очередь реализовать ProgressBar с надписью.


ProgressBar с надписью

Использовать стандартный элемент msctls_progress32 не будем, вместо него возьмем элемент EDIT или STATIC, как и в предыдущем примере. Полоса индикатора и надпись реализуется путем рисования прямо на канве элемента диалогового окна, которое выделено под индикатор.

Основная загвоздка заключается в том, что при отрисовке текста поверх индикатора прогресса, надо учитывать разницу в цвете фона и полосы выполненной части. Посмотрите на скриншоте, чтобы стало понятно, о чем идет речь. В некоторых случаях при определенной комбинации цветов можно использовать единый цвет, но это не самое хорошее решение. Так что сделаем все правильно.

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

Продвинутая работа с буфером обмена на Ассемблере

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

Продвинутая работа с буфером обмена на Ассемблере

Еще одна статья, посвященная работе с буфером обмена. Обычно для этого используются функции GetClipboardData и SetClipboardData, но сегодня мы будем осваивать новый уровень - чтение и запись различных данных в буфер обмена при помощи OLE-функций. Хорошая практика для закрепления навыков работы с объектами.

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

01 ... 14 15 16 17 18 19 20 ... 73
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.09 сек. / MySQL: 3 (0.0167 сек.) / Память: 4.5 Mb
Наверх