
Быстрый поиск
Введите фрагмент названия статьи для поиска
Эффект плавного открытия окна
08.12.2010 | Категория: Образ мышления: Assembler | Автор: ManHunter
Разберем еще один красивый эффект для ваших приложений - плавное сворачивание и разворачивание окна. Для этого используются те же функции, что и для создания окон нестандартной формы, так как по сути это такая же работа с прямоугольными регионами, но только в цикле с заданными параметрами. Алгоритм простой: прямоугольный регион окна увеличивается от центра до полного размера или уменьшается со всех сторон до центра. Для этого надо сперва надо вычислить шаг, на который будет увеличиваться или уменьшаться горизонтальная и вертикальная координата.Code (Assembler) : Убрать нумерацию
- ; Обработчик инициализации окна
- ...
- ; Получить размер окна
- invoke GetClientRect,[hwnddlg],coord
- ; Вычислить размеры окна для создания основного региона
- mov eax,[coord.bottom]
- sub eax,[coord.top]
- mov [height],eax
- mov eax,[coord.right]
- sub eax,[coord.left]
- mov [width],eax
- SPEED = 4 ; Скорость анимации
- ; Вычислить коэффициент соотношения сторон в зависимости от
- ; размеров ширины и высоты окна
- cmp eax,[height]
- ja @f
- ; Высота/ширина
- xor edx,edx
- mov eax,[height]
- mov ecx,[width]
- div ecx
- shl eax,SPEED
- mov [delta_x],(1 shl SPEED) ; Шаг изменения ширины
- mov [delta_y],eax ; Шаг изменения высоты
- jmp @1
- @@:
- ; Ширина/высота
- xor edx,edx
- mov eax,[width]
- mov ecx,[height]
- div ecx
- shl eax,SPEED
- mov [delta_x],eax ; Шаг изменения ширины
- mov [delta_y],(1 shl SPEED) ; Шаг изменения высоты
- @1:
Читать статью целиком »
Просмотров: 6763 | Комментариев: 6
Как снять пароль на изменение документов Microsoft Office
07.12.2010 | Категория: Темная сторона Силы | Автор: ManHunter

Снятие пароля на редактирование документа
Иногда некоторые файлы, созданные в Microsoft Office, защищают от редактирования. Это могут быть какие-нибудь договора, счета и т.п. документы, которые после оформления не должны быть случайно или намеренно изменены. Но, как говорится, если нельзя, но очень нужно, то можно. В домашних условиях можно применить какой-нибудь инструментарий, специально заточенный для подбора или взлома паролей или открыть документ в OpenOffice, который клал с пробором на такие "защиты". А как быть в условиях офиса или на чужом компьютере? Сейчас я расскажу как можно снять пароль на редактирование документа с помощью подручных средств.
Читать статью целиком »
Просмотров: 43291 | Комментариев: 47
Выставка "Hello Teddy" 2010
05.12.2010 | Категория: Жизнь в оффлайне | Автор: ManHunter

Выставка "Hello Teddy" 2010
Невероятно, но факт: форма мишки - самая широко используемая, мишка - символ нашей Олимпиады, символ городов Ярославля, Берлина, Берна, главный и незаменимый герой книг, открыток и мультфильмов. Тедди всегда вне конкуренции: мишка угодил и формой, и содержанием. На второй Международной выставке коллекционных медведей "Hello Teddy" старинные экземпляры медведей, привезенные из Парижа, Праги, Лондона, органично соседствуют с дизайнерскими мишками, проникнутыми современным стилем. Как отмечают коллекционеры, которых по самым скромных подсчетам в мире более 200 тысяч, нужно взять понравившегося мишку на руки, и дальше дело за вашим сердцем.
Читать статью целиком »
Просмотров: 4030 | Комментариев: 3
Делаем быстрые и красивые превьюшки
02.12.2010 | Категория: Web-мастеру и не только | Автор: ManHunter
При работе с графикой, а именно при создании различных онлайн-галерей, при работе с прикрепленными к статьям файлами в CMS, требуется создание так называемых превьюшек - пропорционально уменьшенных копий изображений. Они могут создаваться динамически или храниться на диске в виде отдельных файлов, все зависит от конкретной задачи. Рассмотрим несколько способов создания превьюшек и сравним их производительность.
Сравнение способов создания превьюшек
Для тестов была взята фотография размером 3468 х 2736 пикселов, глубина цветности 24 бита. Цель - разными способами сделать из нее превьюшку размером 200 x 150 пикселов и сохранить результат в файл JPG с наилучшим качеством. Тестовые фрагменты кода максимально облегчены, все размеры и названия файлов захардкодены прямо в исходники. Время выполнения тестов и объем занятой памяти соответствуют моему ноутбуку, эти значения приведены только для сравнения, так что не удивляйтесь, если ваши цифры будут отличаться.
Читать статью целиком »
Просмотров: 8415 | Комментариев: 3
Расчет CRC16 на Ассемблере
30.11.2010 | Категория: Образ мышления: Assembler | Автор: ManHunter
CRC (Cyclic Redundancy Code - циклический избыточный код) - алгоритм расчета контрольной суммы для передаваемого сообщения, основанный на полиномиальной арифметике. Основная идея алгоритма CRC состоит в представлении сообщения в виде огромного двоичного числа, делении его на другое фиксированное двоичное число и использовании остатка от этого деления в качестве контрольной суммы. Получив сообщение, приемник должен выполнить аналогичное действие и сравнить полученный результат с принятой контрольной суммой. Сообщение считается достоверным, выполняется это равенство. Классический алгоритм CRC16 часто используется в архиваторах для контроля целостности данных служебных заголовков архивов, также его удобно использовать для сравнения строки с каким-либо значением, когда по соображениям безопасности сравниваемое значение не хранится в открытом виде. Для контроля целостности файлов функцию CRC16 лучше не использовать, так как из-за небольшой длины ее научились подделывать. Чтобы выполнить расчет CRC16 требуется сперва подготовить так называемую таблицу инициализации. В сегменте данных таблица резервируется как 256 слов, по одному word на каждый возможный байт:Code (Assembler) : Убрать нумерацию
- ; Сегмент данных
- section '.data' data readable writeable
- ; Таблица инициализации для расчета CRC16
- crc16table rw 256
Code (Assembler) : Убрать нумерацию
- ;-----------------------------------------------------------------------
- ; Функция создания таблицы инициализации для расчета CRC16
- ;-----------------------------------------------------------------------
- proc init_CRC16
- push eax ebx ecx edi
- ; Указатель на выделенную под таблицу память
- mov edi,crc16table
- ; Расчитать значения для всех 256 слов
- xor edx,edx
- CRC16_Polynom:
- mov eax,edx
- mov ecx,8
- CRC16_NL:
- shr ax,1
- jae CRC16_NoXOR
- ; Magic Number!
- xor ax,0a001h
- CRC16_NoXOR:
- loop CRC16_NL
- ; Записать значение в таблицу полиномов
- stosw
- inc edx ; Счетчик +1
- cmp edx,256 ; Всю таблицу сгенерировали?
- jne CRC16_Polynom ; Нет, работаем дальше
- ; Восстановить измененные регистры
- pop edi ecx ebx eax
- ret
- endp
Читать статью целиком »
Просмотров: 11612 | Комментариев: 2


