Курсовая работа: Переопределение назначений клавиш на клавиатуре в операционной системе Windows

N– это количество записей в буфере.

K– количество записей в массиве замен.

S[i] – скэнкод клавиши, соответствующей i‑ой записи буфера.

F1 [j] – скэнкод заменяемой клавиши (j‑ая запись массива замен).

F2 [j] – скэнкод клавиши, на которую происходит замена (j‑ая запись массива замен).

Клавиша Pause

Драйвер не позволяет заменить клавишу Pause на какую либо другую клавишу, посколько она сигнализирует только при нажатии. Но эта клавиша может выдавать различные записи в буфере, в зависимости от того, нажат Ctrlили нет.

Предположим, пользователь поменял правый Ctrl и «a» местами. В этом случае при нажатии на «a» + Pause, клавиша Pause должна выдать код, как будто бы была нажата клавиша Ctrl. И наоборот выдать обычный код Pause при нажатии Ctrl + Pause.

Для решения этой задачи необходимо завести переменную, которая будет хранить информацию, о том, нажата ли клавиша, отвечающая на данный момент за Ctrl. Эта переменная называется CtrlPressed. Если клавиша нажата, то переменная равна 1, иначе 0.

Алгоритм работы с клавишей Pause

- Встречена последовательность записей Ctrl + Pause

· Если CtrlPressed=1, то

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

· Если CtrlPressed=0, то

последовательность, заменяется на последовательность, соответствующую обычной Pause

- Встречена последовательность записей Pause

· Если CtrlPressed=1, то

последовательность, заменяется на последовательность, соответствующую Ctrl+ Pause

· Если CtrlPressed=0, то

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

Клавиша PrintScreen

Поскольку PrintScreen выдает разные записи, в зависимости от того, нажата ли клавиша Alt. Клавиша PrintScreen, в отличие от Pause может быть заменена на другую клавишу. И она всегда выдает по одной записи при нажатии и тпускании.

Как и в случае с Pause вводится переменная AltPressed, которая равна 1, если нажата клавиша, отвечающая за Alt.

Произведем унификацию. При встрече записи, соответствующей PrintScreen или Alt + PrintScreen будем заменять ее на запись, соответствующую PrintScreen.

Теперь необходимо проверить, есть ли PrintScreen в списке замен, и если нужно, заменить его на другую клавишу или вообще удалить из буфера (если клавиша отключена).

- Если PrintScreen был заменен на другую клавишу, то

никакие действия над ним не производятся

- Если PrintScreen не был заменен, то

· Если AltPressed=1, то

К-во Просмотров: 363
Бесплатно скачать Курсовая работа: Переопределение назначений клавиш на клавиатуре в операционной системе Windows