Blog. Just Blog

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

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

Пересборка инсталлятора Punto Switcher

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

Установка Punto Switcher

Программа Punto Switcher - это автоматический переключатель русской и английской раскладок клавиатуры. Когда вы забываете переключить раскладку с русской на английскую и наоборот, то вместо "Windows" получается "Цштвщцы", а вместо "молоко" - "vjkjrj". Punto Switcher это исправит - раскладка будет переключаться автоматически. Сама программа исключительно полезная, но после покупки ее Яндексом, в дистрибутиве стало слишком много чужеродного. Сам дистрибутив потяжелел почти до 3 мегабайт, в процессе инсталляции навязчиво предлагает сделать Яндекс домашней страницей, установить Яндекс.Трояна и вообще весь стал ходячей рекламой. Это плохо, значит будем исправлять все недоработки авторов.

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

Готовим окрошку по-уральски

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

Окрошка

Наконец-то наступили жаркие дни, можно приготовить окрошку со свежими овощами. Рецептов окрошки много, я предпочитаю уральский вариант, с квасом и хреном.

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

Концерт Doro Pesch в "Точке"

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

Концерт Doro Pesch в "Точке"

Приезд Doro Pesch в Москву я ждал долго и был очень рад, когда наконец на сайте "Точки" появился анонс концерта и афиша со знакомой фотографией. На этот раз подсуетился пораньше, удалось купить обычный билет в партер.

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

Всплывающее окно на Ассемблере

26.05.2009 | Категория: Образ мышления: Assembler | Автор: ManHunter
Всплывающее окно - удобный способ информировать о том, что ваша программа выполнила какое-то действие, не требующее немедленного вмешательства пользователя, но достаточно важное, чтобы он об этом узнал. Это может быть сообщение о завершении закачки файла, получении нового письма, завершении длительных вычислений и т.п. Красивый эффект получается, когда информационное окно плавно выезжает из-под таскбара. Простого перемещения окна тут будет недостаточно, так как придется учитывать положение таскбара и всяких других панелей, которые резервируют под себя часть рабочего стола. Поэтому надо сперва получить размер видимой области экрана с учетом различных панелей инструментов и размеры самого всплывающего окна. Затем окно перемещается по одному пикселу в нужном направлении с учетом положения панелей, а размер его видимой части увеличивается на один пиксел в противоположную сторону. Это делается при помощи функции MoveWindow. Лучше всего сам эффект всплытия реализовать на стадии инициализации окна по сообщению WM_INITDIALOG, но в этом случае придется принудительно показывать окно функцией ShowWindow и обновлять его содержимое функцией UpdateWindow после каждого сдвига. Рекомендуются стили окна без заголовка и поверх всех окон, как сделано в прилагаемом примере. Атрибут прозрачности для всплывающих окон лучше не использовать, так как при анимации появляются заметные искажения.
  1. ; Сегмент данных
  2. section '.data' data readable writeable
  3.  
  4. coord   RECT    ; Размеры окна
  5. screen  RECT    ; Размеры экрана
  6.  
  7. ; Сегмент кода
  8. section '.code' code readable executable
  9.         ...
  10.         ; Обработчик сообщения WM_INITDIALOG
  11. wminitdialog:
  12.         ; Получить размер рабочей области экрана
  13.         invoke  SystemParametersInfo,SPI_GETWORKAREA,NULL,screen,FALSE
  14.  
  15.         ; Получить размер окна
  16.         invoke  GetClientRect,[hwnddlg],coord
  17.  
  18.         ; Вычислить отступ от правой границы экрана
  19.         mov     eax,[screen.right]
  20.         sub     eax,[coord.right]
  21.         dec     eax
  22.         mov     [screen.right],eax
  23.  
  24.         ; Высота окна
  25.         mov     ecx,[coord.bottom]
  26.         ; Цикл всплытия окна
  27. @@:
  28.         ; Сохранить значение счетчика
  29.         push    ecx
  30.  
  31.         ; Заполняем стек для MoveWindow
  32.         push    TRUE
  33.         mov     eax,[coord.bottom]
  34.         sub     eax,ecx
  35.         push    eax
  36.         push    [coord.right]
  37.         mov     ecx,[screen.bottom]
  38.         sub     ecx,eax
  39.         push    ecx
  40.         invoke  MoveWindow,[hwnddlg],[screen.right]
  41.  
  42.         ; Так как сейчас только инициализация, то придется принудительно
  43.         ; показать окно и обновить его содержимое
  44.         invoke  ShowWindow,[hwnddlg], SW_SHOW
  45.         invoke  UpdateWindow,[hwnddlg]
  46.  
  47.         ; Небольшая пауза
  48.         invoke  Sleep,2
  49.  
  50.         ; Восстановить счетчик
  51.         pop     ecx
  52.         loop    @b
  53.         ...
После полного появления окна нужно решить, каким образом будет выполняться его дальнейшая обработка. Окно можно убрать по таймеру через несколько секунд, скрыть по клику мышкой на нем или подождать другого события, например, нажатия на какую-нибудь кнопку. В любом случае окно можно или просто закрыть, или убрать его с таким же эффектом, только направление движения будет противоположным. Код плавного скрытия всплывающего окна приведен ниже. Подразумевается, что все используемые структуры с размерами после его открытия остались неизменными.

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

Internet Explorer 8 и мета-тег X-UA-Compatible

23.05.2009 | Категория: Web-мастеру и не только | Автор: ManHunter
С выходом финальной версии Microsoft Internet Explorer 8 web-мастерам добавилось головной боли из-за совместимости верстки под новый браузер. К счастью, в IE8 введены официально документированные режимы совместимости со старыми версиями Internet Explorer, по официальной версии "предназначенные для упрощения перехода с устаревших стандартов на новые". Говоря простым языком, пока web-мастера перекраивают свои сайты под IE8, для пользователей с новым браузером они могут временно поставить на страницы следующий мета-тег:
  1. <meta http-equiv="X-UA-Compatible" content="IE=7" />
Этот тег указывает браузеру Internet Explorer 8, что страницу надо отображать так же, как в Internet Explorer 7, соответственно, значение мета-тега IE=6 (значение в документации не описано, но при этом срабатывает правильно) и IE=5 даст команду отображать страницу в режиме совместимости с Internet Explorer 6 и 5. Ключевое слово IE=EmulateIE7 указывает браузеру, что при отображении страницы надо использовать настройки из директивы <!DOCTYPE>. Причем рендеринг страницы выполняется действительно с особенностями указанных версий браузеров, в этом можно убедиться на различных хаках CSS, свойственных конкретной версии IE. Если указать значение IE=8, то страница будет отображаться, как пишут сами авторы, "с наивысшим уровнем поддержки отраслевых стандартов, включая Спецификацию каскадных таблиц стилей (CSS) W3C уровня 2.1 и W3C Selectors API, а также ограниченную поддержку Спецификации каскадных таблиц стилей (CSS) W3C уровня 3 (рабочий проект)", подробнее о всех доступных значениях мета-тега X-UA-Compatible можно прочитать в официальной документации.

Обратите внимание, что мета-тег X-UA-Compatible должен быть помещен в HEAD страницы самым первым по счету, если его поставить после любого другого мета-тега, например, после иконки или заголовка страницы, то он будет просто проигнорирован. Не забывайте про эту особенность, когда будете верстать свой сайт. Как вариант, мета-тег X-UA-Compatible можно использовать для проверки отображения сайта под разными версиями Internet Explorer, не устанавливая сами браузеры, а имея только один установленный IE8.

Просмотров: 9781 | Комментариев: 4

01 ... 391 392 393 394 395 396 397 ... 418
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2024
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.09 сек. / MySQL: 2 (0.0227 сек.) / Память: 4.5 Mb
Наверх