Blog. Just Blog

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

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

Окна нестандартной формы на Ассемблере. Часть 1

22.06.2009 | Категория: Образ мышления: Assembler | Автор: ManHunter
Фигурная резьба по деревянным окнам - старинное народное творчество. А в нашем 21-м веке народным творчеством будет резьба по окнам Windows. При умелом использовании это станет стильным украшением для ваших приложений, добавив им привлекательности.

Форма окна определяется особыми структурами, называемыми регионами. Они могут быть прямоугольной формы, закругленной, эллиптической и многоугольной. Весь принцип работы с регионами сводится к следующему. Сперва создается главный регион, равный по размерам основному диалоговому окну, затем создаются дополнительные регионы нужного размера и накладываются на него с нужной битовой маской. Режимы наложения определяют будет ли новый регион удален из основного, или же наоборот добавлен. Размер главного региона лучше всего рассчитывать из результатов функции GetClientRect, вызванной с хэндлом нужного диалогового окна. Наложение регионов выполняется функцией CombineRgn, возможные режимы наложения смотрите в официальной документации. Все действия выполняются на этапе инициализации окна по событию WM_INITDIALOG.
  1. ; Сегмент данных
  2. section '.data' data readable writeable
  3.  
  4. hRMain  dd ?   ; Хэндл главного региона окна
  5. coord   RECT   ; Координаты окна для вычисления размера региона
  6.         ...
В сегменте данных инициализируется хэндл главного региона окна и структура RECT с координатами диалогового окна, по которым будет рассчитываться размер главного региона.

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

Готовим казан-кебаб

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

Казан-кебаб

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

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

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

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

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

WinSnap от NTWind Software - удобная программа для создания скриншотов. От множества аналогов отличается тем, что корректно захватывает окна непрямоугольной формы, позволяет сразу же добавлять эффект тени, наносить водяные знаки на изображение, захватывать несколько последовательных окон, а также имеет другие полезные функции, которых нет у конкурентов. Но в пробной версии показывает всякие наг-скрины и маркирует все создаваемые скриншоты своим логотипом. Для исследования защиты нам потребуется дизассемблер и дистрибутив, на момент публикации последняя версия WinSnap 3.0.8 от мая 2009 года.

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

Фестиваль "Рокгерой" в клубе "Plan B"

17.06.2009 | Категория: Жизнь в оффлайне | Автор: ManHunter

Фестиваль "Рокгерой" в клубе "Plan B"

Наконец-то выбралась из студийного подполья моя любимая группа группа "Dark Princess", чтобы принять участие в фестивале "Рокгерой". Сейчас они как раз записывают новый альбом, так что с активной концертной деятельностью временно притормозили. Вообще сам формат фестиваля "Рокгерой" больше склонен в сторону альтернативы, к которой я чуть более чем равнодушен, поэтому сегодня мои комментарии к остальным выступавшим группам будут краткими.

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

Грабберы контента с других сайтов

16.06.2009 | Категория: Web-мастеру и не только | Автор: ManHunter
Грабберы контента - это специальные скрипты или программы, которые получают некоторую информацию напрямую из текста html-страниц других сайтов, чаще всего без их ведома или разрешения. Название произошло от транскрипции английского глагола "to grab" - "захватывать", "использовать", хотя и русский вариант корня "грабить" тоже иногда подходит. Вообще, тырить чужой контент и использовать его на своих сайтах нехорошо. Но в некоторых случаях считаю это допустимым, например, когда для мобильных устройств требуется получить облегченные версии страниц сайтов, которые не имеют такой штатной функции. Или же надо удалить со страницы всякую рекламу, а то некоторые ублюдочные сайты умудряются заталкивать баннеры даже в RSS-ленты. Или, например, если требуется получать информацию с сайтов, у которых нет собственных API для выгрузки контента.

Самый простой способ получить текст нужной html-страницы сайта - при помощи функции PHP file_get_contents. Текст загруженной страницы разбирается регулярными выражениями. Вот пример граббера для Цитатника Рунета. После извлечения цитат с главной страницы можно вывести их все списком, как сделано в этом примере, или показать случайным образом одну из них.
  1. <?
  2. //-----------------------------------------------------------
  3. // Граббер цитат с Цитатника Рунета bash.org.ru
  4. // Загружает и парсит главную страницу, цитаты помещает в массив
  5. //-----------------------------------------------------------
  6. // Получить html-страницу
  7. $grab=@file_get_contents("http://bash.org.ru");
  8. if ($grab) {
  9.   // Заменить теги переноса строки на простые переносы строки
  10.   $grab=str_replace("<br>","\n",$grab);
  11.   // Получить регулярным выражением тексты цитат
  12.   preg_match_all("/<div class=\"vote\">([^>]*>){12}([^<]*)/",$grab,$matches);
  13.   // В массиве содержатся все найденные строки
  14.   for ($i=0$i<count($matches[2]); $i++) {
  15.     echo nl2br($matches[2][$i]);
  16.     echo '<hr>';
  17.   }
  18. }
  19. else {
  20.   echo "Connection Error";
  21. }
  22. ?>
Регулярные выражения для извлечения данных придется писать самостоятельно, для каждого сайта свои. Отлаживать регулярные выражения можно как в онлайне здесь или здесь, так и с использованием стационарных программ. Для браузера Firefox есть хорошее расширение Regular Expressions Tester.

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

01 ... 371 372 373 374 375 376 377 ... 400
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 2 (0.0352 сек.) / Память: 4.5 Mb
Наверх