Blog. Just Blog

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

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

Филе трески с помидорами и оливками

13.12.2020 | Категория: А еще я туда ем! | Автор: ManHunter

Филе трески с помидорами и оливками

Легкое и вкусное рыбное блюдо из филе трески и овощей. Такая рыба станет не только отличным угощением, но и украшением праздничного стола.

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

Распаковка данных в формате LZ4 на Ассемблере

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

Распаковка данных в формате LZ4 на Ассемблере

Алгоритм сжатия LZ4 был разработан Yann Collet в 2011-м году. При небольшом размере упаковщика и распаковщика, LZ4 обладает очень высокой скоростью обработки данных и хорошей степенью компрессии, поэтому используется в большом числе серьезных проектов. На офсайте есть ссылки на реализации этого алгоритма на различных языках программирования, в том числе и вариант на 16-битном Ассемблере от Jim Leonard. Для использования в своих программах я адаптировал его функцию распаковки LZ4.

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

Подгонка размеров поля EDIT под используемый шрифт

07.12.2020 | Категория: Образ мышления: Assembler | Автор: ManHunter
Много чего уже делали и с полями ввода, и со шрифтами. На очереди автоматическая подгонка высоты однострочного элемента EDIT в зависимости от размеров шрифта, который ему назначен. Это необходимо, чтобы при изменении шрифта текст в поле ввода смотрелся правильно. Высота EDIT считается по высоте выбранного шрифта плюс отступ толщиной в двойную рамку, чтобы текст при отображении эту рамку не перекрывал. В случае многострочных полей ввода высоту надо считать по высоте шрифта, умноженной на необходимое количество строк, плюс отступ.
  1. ;-------------------------------------------------------------
  2. ; Подгонка размера поля EDIT под заданный шрифт
  3. ;-------------------------------------------------------------
  4. ; Параметры:
  5. ;   hEdit - хэндл поля EDIT
  6. ;   hFont - хэндл шрифта
  7. ;-------------------------------------------------------------
  8. proc resize_edit hEdit:DWORD, hFont:DWORD
  9.         locals
  10.             rc RECT
  11.             tm TEXTMETRIC
  12.         endl
  13.  
  14.         pusha
  15.  
  16.         mov     edi,[hEdit]
  17.  
  18.         ; Получить контекст устройства
  19.         invoke  GetDC,edi
  20.         or      eax,eax
  21.         ; Поля ввода не существует, на выход
  22.         jz      .loc_exit
  23.  
  24.         xchg    eax,esi
  25.  
  26.         ; Выбрать шрифт
  27.         invoke  SelectObject,esi,[hFont]
  28.         or      eax,eax
  29.         jnz     @f
  30.  
  31.         ; Шрифт не загружен, на выход
  32.         invoke  ReleaseDC,edi,esi
  33.         jmp     .loc_exit
  34. @@:
  35.         ; Получить метрику выбранного шрифта
  36.         lea     ebx,[tm]
  37.         invoke  GetTextMetrics,esi,ebx
  38.         invoke  ReleaseDC,edi,esi
  39.  
  40.         ; Высота шрифта
  41.         mov     ebx,[ebx+TEXTMETRIC.tmHeight]
  42.         ; Добавить к высоте размер рамки
  43.         invoke  GetSystemMetrics,SM_CYEDGE
  44.         shl     eax,2
  45.         add     ebx,eax
  46.  
  47.         ; Получить размеры поля EDIT
  48.         lea     esi,[rc]
  49.         invoke  GetWindowRect,edi,esi
  50.         invoke  GetParent,edi
  51.         ; Отмасштабировать координаты окна
  52.         invoke  MapWindowPoints,HWND_DESKTOP,eax,esi,2
  53.  
  54.         ; Установить новые размеры поля EDIT
  55.         mov     eax,[esi+RECT.right]
  56.         sub     eax,[esi+RECT.left]
  57.         invoke  MoveWindow,edi,[esi+RECT.left],[esi+RECT.top],eax,ebx,TRUE
  58.  
  59. .loc_exit:
  60.         popa
  61.         ret
  62. endp
Функция самодостаточная, не требует дополнительных переменных в сегменте данных. На входе два параметра: hEdit - хэндл поля EDIT, у которого надо изменить размер, и hFont - хэндл шрифта, под размер которого в поле ввода вносятся изменения. Вызывать функцию изменения размера надо сразу после назначения шрифта полю EDIT.

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

HtmlHelp Wrapper 1.6

05.12.2020 | Категория: Мои программы | Автор: ManHunter

Скриншот программы HtmlHelp Wrapper

HtmlHelp Wrapper - это программа-обертка для открытия .CHM-файлов и .HLP-файлов из командных файлов или приложений. От обычной утилиты HtmlHelp, которая идет в комплекте Windows, эта программа отличается тем, что при открытии файла справки позволяет искать ключевые слова, а для CHM-файлов дополнительно автоматически синхронизировать список ключевых слов и открытой статьи, а также открывать более одной копии справки для отдельного приложения и закрывать открытую справку по нажатию Esc. Кроме своих функций и параметров запуска, поддерживаются все стандартные ключи утилиты HtmlHelp, поэтому можно заменить файл hh.exe в папке Windows на HtmlHelp Wrapper (не забывайте про резервные копии).

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

Исследование защиты программы ZMover

02.12.2020 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы ZMover

ZMover - полезный инструмент, который дает возможность пользователю автоматически устанавливать расположение окон на рабочем столе, менять их размер и позицию, перемещать на нужный монитор, включать режим "поверх всех окон". Как только окно появляется, к нему применяются сохраненные правила. В пробном режиме программа работает всего 30 дней, потом надо будет метнуться в кассу. Или не надо, если прочитаете эту статью.

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

01 ... 04 05 06 07 08 09 10 ... 322
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2021
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.09 сек. / MySQL: 2 (0.023 сек.) / Память: 4.75 Mb
Наверх