- •Реализация функций контроля и управления на базе Win32 api
- •Киров 2000
- •1 Лабораторная работа №1. Файловая и дисковая система windows 4
- •2 Лабораторная работа №2. Устройства ручного ввода 10
- •3 Лабораторная работа №3. Видеосистема 14
- •1 Лабораторная работа №1. Файловая и дисковая система windows
- •1.1 Размещение файлов. Правила именования файлов
- •1.2 Функции Win32 api получения информации о файлах и дисках
- •1.3 Управляющие функции файловой системы
- •1.4 Вспомогательные функции. Связь всех видов функций
- •1.5 Порядок выполнения лабораторной работы №1
- •2 Лабораторная работа №2. Устройства ручного ввода
- •2.1 Назначение устройств ручного ввода и их виды
- •2.2 Функции Win32 api для клавиатуры и мыши
- •2.3 Порядок выполнения лабораторной работы №2
- •3 Лабораторная работа №3. Видеосистема
- •3.1 Основное функциональное назначение видеосистемы
- •3.2 Функции Win32 api для видеосистемы
- •3.3 Порядок выполнения лабораторной работы №3
- •Литература
2 Лабораторная работа №2. Устройства ручного ввода
Целью данной работы является изучение основных функций Win32 API работы с клавиатурой и мышью Windows.
Пример использования функций в пользовательских приложениях приведен в демонстрационной программе lab_api.exe. Для визуального просмотра результатов выполнения данных функций требуется запустить программу lab_api.exe и выбрать опцию меню «Клавиатура» или «Мышь». В справочной системе приведено полное описание используемых функций, включая синтаксис функции. Вызов справочной системы производится из программы lab_api.exe через опцию меню «Справочная система» либо запуском программы lab_help.exe.
2.1 Назначение устройств ручного ввода и их виды
Основными устройствами ручного ввода в графических интерфейсах пользователя современных ПЭВМ являются клавиатура и мышь. С помощью данных устройств оператор осуществляет ввод команд с целью управления программой выполняемой на ПЭВМ. Кроме того, при помощи клавиатуры оператор вводит данные, а с помощью мыши выбирает данные из предлагаемого списка, т.е. клавиатура и мышь являются источниками данных и команд управления для выполняемой программы.
Первоначально ввод на ПЭВМ осуществлялся только с клавиатуры, так как она была достаточно эффективной для выполнения функциональных задач ПЭВМ. Эволюционируя от пультов ЭВМ до мобильных и переносных устройств, клавиатура стала однозначным лидером ввода. Клавиатура ПЭВМ выполнена в виде отдельного устройства, подключаемого к ПЭВМ специальным кабелем. Мобильные и переносные компьютеры содержат встроенную клавиатуру.
В процессе развития программного обеспечения, оно все больше ориентировалось на то, чтобы упростить ввод и позволить пользователю, не обладающему знаниями о внутренней работе программы и не имеющему профессиональных навыков работы с клавиатурой, быстро включиться в работу. В связи с этим появились такие устройства как мышь, световое перо и т.д.
Среди новых устройств ручного ввода двухкнопочная мышь заняла ведущую позицию. Такое лидерство объясняется появлением и развитием операционных систем семейства Windows со своим интерфейсом Win32. Управление в подобных системах может полностью осуществляться мышью, за исключением ввода символов для идентификации, снятия зашиты от несанкционированного доступа и т.д.
В настоящее время изготовители компьютерного оборудования предлагают большой выбор мышей разного типа. Мыши отличаются не только внешним видом, но и способом подключения.
На данном этапе развития ПЭВМ интерфейс пользователя имеет диалоговый характер, где основными устройствами ввода являются клавиатура и мышь. Поэтому управление мышью и клавиатурой является приоритетной задачей.
2.2 Функции Win32 api для клавиатуры и мыши
Большинство функций Win32 API связанных с устройствами ручного ввода осуществляют проверку поступающей информации, являясь, таким образом, информационными. К основным информационным функциям устройств ручного ввода можно отнести следующие ниже перечисленные функции.
Для клавиатуры:
GetKeyboardType;
GetKeyboardState;
GetKeyState;
GetAsyncKeyState.
Для мыши:
GetCursorPos;
GetKeyboardState (для кнопок мыши);
GetSystemMetrics;
SystemParametersInfo (для получения скорости перемещения курсора).
Получаемая информация предназначена как для реагирования программы на действия оператора, так и для получения типа установленных устройств. Приведенные функции позволяют получить информацию о:
типе клавиатуры;
количестве функциональных клавиш клавиатуры;
текущем состоянии всех клавиш (клавиатуры и мыши);
текущем состоянии заданной клавиши;
текущем и предыдущем состоянии заданной клавиши;
положении курсора;
подключении мыши в системе;
количестве кнопок мыши;
скорости перемещения курсора;
и т.д.
Важнейшей информацией для интерфейса пользователя большинства приложений является состояние клавиш и положение курсора мыши на экране. По данной информации принимается решение о связи между оператором и выполняемой программой на ПЭВМ.
Управляющие функции предназначены для настройки клавиатуры и мыши. Например, включение или выключение действие клавиш: "NumLock", "CapsLock" и "ScrollLock". С помощью функций управления мышью программа настраивает курсор, задавая форму отображения, координаты расположения курсора и скорость перемещения мыши. Основные управляющие функции для устройств ручного ввода представлены ниже.
Для клавиатуры - SetKeyboardState.
Для мыши:
ShowCursor;
SwapMouseButton;
ClipCursor;
SetCursorPos;
SystemParametersInfo (для установки скорости перемещения курсора).
В приложениях на базе Win32 потребность использования функций управления мышью возрастает. Это объясняется тем, что развитие операционных систем Windows направленно на упрощение работы оператора. Управление устройствами ручного ввода с помощью приведенных функций сводится к следующему:
задать состояние клавиатуры;
показать/скрыть курсор;
поменять функции кнопок мыши между собой;
ограничить перемещение курсора заданной областью;
задать положение курсора;
задать скорость перемещения курсора.
Как правило, данные функции используются в программах в процедурах настройки устройств ручного ввода. Исключение составляет функция ограничения перемещения курсора в заданной области, так как область динамически изменяется в процессе выполнения программы.
Управление вводом с клавиатуры получило новое направление развития, вследствие необходимости распределения вводимой информации между различными потоками в многозадачных системах. Так как функции управления потоками ввода захватывают более широкую область, чем управление клавиатурой, они не будут рассмотрены.
