
Быстрый поиск
Введите фрагмент названия статьи для поиска
Сглаживание экранных шрифтов при помощи GDI++
07.07.2014 | Категория: Software | Автор: ManHunter

Сглаживание экранных шрифтов при помощи GDI++
У компаний Apple и Microsoft всегда были разногласия по поводу того, как показывать шрифты на экране компьютера. При этом обе компании используют субпиксельный рендеринг, чтобы добиться более четко выглядящих шрифтов. Разница заключается в алгоритме отрисовки. Apple старается максимально сохранить дизайн начертания шрифта, при этом допуская небольшую размытость. Microsoft вписывает символы в пределы границ, установленных пикселями, благодаря этому предотвращается размытие и улучшается читаемость, даже за счет неполного соответствия начертанию.
Читать статью целиком »
Просмотров: 17902 | Комментариев: 13
Как на Ассемблере получить строку названия процессора
17.05.2014 | Категория: Образ мышления: Assembler | Автор: ManHunter
Для получения различной информации о процессоре используется ассемблерная команда CPUID. С ее помощью можно, например, узнать марку процессора и набор поддерживаемых им функций. На старых процессорах инструкция CPUID отсутствовала, поэтому во всех руководствах рекомендуют сперва проверить, что процессор ее поддерживает. Конечно, сейчас придется немало напрячься, чтобы найти такие древние компьютеры для ваших приложений, но порядок есть порядок. Итак, чтобы удостоверится, что команда CPUID доступна, достаточно попытаться изменить 21-й бит расширенного регистра EFLAGS. Если бит успешно поменяется, то инструкция CPUID процессором поддерживается, если регистр флагов остался без изменений, то процессор команду CPUID не поддерживает.Code (Assembler) : Убрать нумерацию
- ; Проверить, поддерживается ли команда CPUID
- pushfd
- pop eax
- ; Получить регистр флагов
- mov ebx,eax
- ; Изменить 21-й бит в регистре флагов
- xor eax, 200000h
- ; Сохранить и снова получить регистр флагов
- push eax
- popfd
- pushfd
- pop eax
- ; Регистр флагов изменился?
- cmp eax,ebx
- ; Нет, значит команда CPUID не поддерживается
- je cpuid_not_supported
Читать статью целиком »
Просмотров: 14141 | Комментариев: 5
Как Windows определяет, что файл был загружен из Интернета
12.04.2014 | Категория: Software | Автор: ManHunter
Часто при попытке запустить файлы, скачанные из интернета, появляется примерно такое окно:
Как Windows определяет, что файл был загружен из Интернета
Такую "черную метку" файлу обычно ставит браузер Internet Explorer. При этом файл можно переименовать, скопировать или даже переместить на другой диск, предупреждение все равно будет оставаться. Снять блокировку с файла можно примерно так. Но каким образом система определяет, что файл скачан из интернета? Эта информация записывается в так называемые альтернативные потоки NTFS. Суть технологии альтернативных потоков заключается в том, что у файла на дисковой системе NTFS одновременно может быть несколько потоков, содержащих данные. Проводник Windows и большинство файловых менеджеров могут работать только с главным потоком, который представляет собой основное содержимое файла.
Читать статью целиком »
Просмотров: 26234 | Комментариев: 16
Skype: No Fucking Advert 1.0
28.11.2013 | Категория: Мои программы | Автор: ManHunter

Скриншот программы Skype: No Fucking Advert
Не знаю как вас, а меня рекламные баннеры просто бесят. И если в браузере можно добавить в фильтр ссылки на них, а в большинстве стационарных программ подкорректировать ресурсы или применить какой-нибудь иной патч, то в Skype так просто от баннеров не избавиться. Поскольку на работе частенько приходится пользоваться Skype, после появления в списке контактов очередного рекламного баннера мое терпение лопнуло. В результате появилась программа Skype: No Fucking Advert, которая удаляет рекламу из списка контактов Skype и предотвращает ее повторное появление.
Читать статью целиком »
Просмотров: 11993 | Комментариев: 42
Добавление пунктов в системное меню окна
05.11.2013 | Категория: Образ мышления: Assembler | Автор: ManHunter
Некоторые программы добавляют свои пункты меню в стандартное системное меню, которое появляется при клике на иконку окна. Как это делается? Очень просто. При инициализации окна или при наступлении каких-либо определенных условий выполняется примерно следующий код:Code (Assembler) : Убрать нумерацию
- ; Получить хэндл системного меню окна
- invoke GetSystemMenu,[hwnddlg],0
- mov ebx,eax
- ; Добавить в меню полосу разделителя
- invoke InsertMenu,ebx,2,MF_BYPOSITION,0,0
- ; Идентификаторы сообщений при выборе пунктов меню
- IDM_MENU1 = 101
- IDM_MENU2 = 102
- ; Добавить свои пункты меню
- invoke InsertMenu,ebx,3,MF_BYCOMMAND,IDM_MENU1,szMenu1
- invoke InsertMenu,ebx,4,MF_BYCOMMAND,IDM_MENU2,szMenu2
- ...
- ...
- szMenu1 db 'About',0
- szMenu2 db 'Exit',0
Читать статью целиком »
Просмотров: 6333 | Комментариев: 5


