
Быстрый поиск
Введите фрагмент названия статьи для поиска
Flying Windows 1.6
03.02.2010 | Категория: Мои программы | Автор: ManHunter

Скриншот программы Flying Windows
Эта маленькая программа значительно облегчает работу за компьютером. Написана для личных нужд и включает в себя несколько полезных инструментов:
1. Flying windows
При включенной опции можно перетаскивать при нажатой клавише Alt любое окно за любое место, а не только за заголовок. Очень удобно, когда одновременно открыто много окон или панелей инструментов. В некоторых приложениях дает неожиданный эффект, перетаскивая вместо окна его дочерние элементы. Но это случается крайне редко, мне пока встретилось всего несколько таких программ.
2. Intelligent mousewheel
Эта опция дает возможность прокрутки окон колесиком мышки без установки на них фокуса. Опять же удобно когда открыто много окон.
3. Enabler and unhider
Эта опция позволяет открывать пароли за "звездочками", активировать отключенные кнопки, поля ввода, убирает лимиты количества символов с полей ввода, в качестве побочного эффекта "отвязывает" любые открытые модальные окна. Открытие паролей работает не во всех приложениях. Опция включается через меню или нажатием колесика мыши на иконке в трее. Отключается нажатием колесика мыши на главной иконке в трее или любым нажатием на собственную иконку Enabler'а. Настоятельно не рекомендуется держать Enabler постоянно включенным! Это связано с тем, что создается дополнительная нагрузка на систему и некоторые программы могут работать нестабильно. Также принудительная разблокировка всех подряд элементов во всех окнах может привести, например, к такой ситуации: вы поставите галочку в настройках какой-нибудь программы, а потом окажется что она изначально была заблокирована и взаимосвязана с другой настройкой. К чему это в результате может привести остается только догадываться.
Читать статью целиком »
Просмотров: 46015 | Комментариев: 70
Проверка и обнаружение зависших приложений
27.10.2009 | Категория: Образ мышления: Assembler | Автор: ManHunter
Иногда для работы требуется определение зависших приложений, окна которых не отвечают на сообщения. Для этого есть два способа. Первый - официально документированный, через функцию SendMessageTimeOut. Особенность ее работы заключается в том, что после отправки сообщения окну она ждет ответ заданное время, и, если ответа от приложения не последовало, то возвращает FALSE. Вот пример использования функции. Нужные константы, как обычно, в FASM не определены, пришлось брать их из других источников.Code (Assembler) : Убрать нумерацию
- ...
- ; Определить таймаут 50 миллисекунд
- TIMEOUT = 50
- ; Определить константу SMTO_ABORTIFHUNG
- SMTO_ABORTIFHUNG = 2
- ; hwnd - хэндл проверяемого окна
- invoke SendMessageTimeout,[hwnd],NULL,0,0,SMTO_ABORTIFHUNG,TIMEOUT,NULL
- ; Если вернулся 0, то приложение "висит"
- or eax,eax
- jz app_hung_up
- ...
Читать статью целиком »
Просмотров: 8576 | Комментариев: 2
Управление клавишами NumLock, CapsLock и ScrollLock
07.10.2009 | Категория: Образ мышления: Assembler | Автор: ManHunter
Иногда в программах требуется получать состояние управляющих клавиш или изменять их состояние. Во времена MS-DOS достаточно было просто прочитать или записать значение WORD по определенному адресу памяти, при этом светодиодные индикаторы клавиатуры реагировали на это включением или выключением. Были очень популярны крохотные, в несколько байт, программы для выключения NumLock при загрузке системы, типа таких:Code (Assembler) : Убрать нумерацию
- ;-----------------------------------------------------------
- ; Программа для выключения индикатора NumLock под MS-DOS
- ; Размер .com-файла после компиляции 9 байт
- ;-----------------------------------------------------------
- .286
- .model tiny
- .code ; Сегмент кода
- org 100h ; Зарезервировано для PSP
- start:
- pop ax ; После запуска в стеке 0, AX=0
- mov ds,ax ; DS=0
- mov ds:[417h],ax ; WORD DS:[417h] - состояние *Lock'ов
- int 20h ; Выход из программы
- end start
Читать статью целиком »
Просмотров: 13660 | Комментариев: 3
CapsLock Killer 1.0
13.08.2009 | Категория: Мои программы | Автор: ManHunter

Скриншот программы CapsLock Killer
Программа предназначена для принудительного отключения клавиши CapsLock после нажатия, так что при активном CapsLock Killer клавиша CapsLock ведет себя как Shift. Программа была написана для личных нужд, когда мне надоело случайно попадать по кнопке CapsLock на своем ноутбуке. Во всяких интернетах для отключения клавиши CapsLock советуют разные радикальные методы вроде полной блокировки ее через реестр, установки монстрообразных менеджеров клавиатуры и прочие ужасы. CapsLock Killer не вносит в реестр никаких изменений, касающихся состояния управляющих клавиш, и может быть в любой момент отключен или удален без каких-либо последствий для системы. Управляется через иконку в трее или горячей клавишей Ctrl+Win+C, а через меню может добавляться в автозагрузку.
В программе использованы функции перехвата и обработки клавиатуры, поэтому некоторые "антивирусы" могут расценивать ее поведение как подозрительное. Я гарантирую, что никакого заведомо вредоносного кода CapsLock Killer не содержит.
Для оформления интерфейса программы использована картинка с сайта GarvGraphx.com, за что им большое спасибо.
Читать статью целиком »
Просмотров: 7691 | Комментариев: 17
ReadKey 1.0
02.04.2009 | Категория: Мои программы | Автор: ManHunter
Небольшая консольная программа для использования в пакетных файлах. Возвращает в %ERRORLEVEL% скан-код нажатой клавиши. Ее удобно применять, когда требуется запросить от пользователя какую-нибудь информацию, например подтверждение выбора Yes/No, букву диска, число от 0 до 9 и т.п. Для определения скан-кодов нужных вам клавиш в архиве прилагается файл scancodes.bat. Пример использования ReadKey:@echo off
echo Example of usage ReadKey 1.0
:loop
echo Press [Y]es or [N]o:
readkey.exe
if %errorlevel% == 78 goto _no
if %errorlevel% == 89 goto _yes
:_error
echo Invalid Key!
goto loop
:_yes
echo Your choice is YES
goto _exit
:_no
echo Your choice is NO
:_exit
pause
Этот же пример в файле usage.bat из архива. В этом пакетном файле пользователя просят выбрать "Y" или "N" и, в зависимости от выбора, управление передается на разные ветки алгоритма.
Читать статью целиком »
Просмотров: 5681 | Комментариев: 3


