C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Блокируем клавиатуру и мышь на определенное время / Мышь / Система. Общее

Блокируем клавиатуру и мышку на определённое время


Автор: Arthur Boynagryan.

Требования: Windows 9x

Введение

Эта программка блокирует клавиатуру и мышку на компьютере под управлением Windows 9x.

Моё начальство поставило задачу, чтобы пользователи не могли работать на компьютерах по окончании рабочего дня (т.е., 7 PM). И в тоже время, чтобы они могли с утра нормально работать (т.е., в 9 AM).

В определённое время отрубаются все специальные комбинации клавишь (Ctrl-Alt-Del, Alt-Tab, Ctrl-Esc, Windows клавиши), затем перехватывает весь ввод с клавиатуры и события типа WM_LBUTTONDOWN, так что пользователь уже не сможет ничего сделать на компьютере. Перезагрузка не поможет, поскольку программка автоматически садится в автозагрузку наподобие троянов.

Для перехвата ввода с клавиатуры и мышки устанавливается глобальная ловушка :) Ловушка - это точка в механизме сообщений, куда приложение может установить подпрограммку мониторинга сообщений, прежде чем они достигнут цели. Для инсталляции используйте функцию SetWindowsHookEx() . Она использует 4 параметра:

    int idHook: Определяет тип устанавливаемой ловушки. Параметры: WH_KEYBOARD для клавиатуры и WH_MOUSE для мышки.

    HOOKPROC lpfn: точка входа процедуры обработки ловушки. В моём случае процедура обработки ловушки находится в dynamic-link library (DLL).

    HINSTANCE hMod: Handle DLL-ки содержащей процедуру, на которую указывает параметр lpfn .

    DWORD dwThreadId: Указывает поток, с которым ассоциируется процедура обработки ловушки. Если этот параметр равен нулю, то процедура ловушки ассоциируется со всеми существующими потоками запущенными в этом же десктопе.

Для запрета специальных комбинаций (Ctrl-Alt-Del, Alt-Tab, Ctrl-Esc, Windows key) используется функция SystemParametersInfo() с флагом SPI_SETSCREENSAVERRUNNING ..

При запуске программа проверяет, не была ли она уже запущена. Если это так, то она завершается. Иначе она проверяет от куда она запустилась и инсталлирует себя в системную директорию и в ключе реестра RunServices. По умолчанию время начала блокировки назначено на 7 PM, и соответственно окончание на 9 AM. Это время можно менять в ключе "HKLM\Software\Windows\CurrentVersion\Explorer\Services". В любой момент можно снять блокировку путём набора на клавиатуре "unl0ck" - ловушка автоматически снимется. Естевственно этот пароль можно в программе изменить.

Не стесняйтесь адаптировать ловушку под свои нужды - это поможет Вам лучше понять принцып её работы.

Downloads

Скачать демонстрашку с исходником - 47 Kb