Блокируем клавиатуру и мышку на определённое времяАвтор: 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
|