Особенности строения операционной системы Windows. Понятия оконный дескриптор, сообщение и событие. Использование WinAPI функций при создании окон, кнопок, однострокового и многострокового редактора. Утилита слежения за окнами и сообщениями WinSight.
Настоящее учебно-методическое пособие посвящено API (application programming interfaces) функциям операционной системы Microsoft Windows, вызов которых мало отличается в различных языках программирования. Все примеры, приведенные в пособии, написаны на языке Object Pascal (среда программирования Delphi), как на наиболее распространенном языке обучения на департаменте физики ЮФУ. Во второй части поэтапно описывается, как создать окно и управляющие элементы на нем без использования библиотек (VCL, MFC и пр.), лишь на основе API функций.Система предоставляет приложениям сервисные API функции, с помощью которых оно может взаимодействовать с системой. Функции и процедуры Windows API, или, сокращенно, WINAPI-функции, являются набором программных интерфейсов приложений (application programming interfaces - APIS), доступных в операционных системах Microsoft Windows. Доступ более низкого уровня к системе Windows, часто применяющийся в драйверах устройств, предоставляется Windows Driver Foundation или Native API, которые отличаются в разных версиях операционной системы. Все Windows API функции располагаются в файлах динамических библиотек (*.dll), которые находятся в системных папках ОС (как правило, папка System32). Дополнительные сервисы (Advanced Services) предоставляют доступ к надстройкам над kernel-библиотеками, включая такие элементы, как реестр Windows, перезагрузка и завершение работы системы, запуск/создание/остановка сервисов Windows, управление учетными записями пользователей.В этом случае, под окном подразумевается любые элементы: от кнопок управления и надписей до диалоговых окон и окон в целом. Windows посылает специальные, определенные системой, сообщения при взаимодействии с приложением. Например, сообщение с названием WM_PAINT просит окно перерисовать свое содержимое. Сообщения для обычных окон включают в себя множество информационных сообщений и запросов, таких, как сообщения от мышки и клавиатуры, выбор элементов меню и диалоговых окон, создание и управление окнами, динамический обмен данными (dynamic data exchange - DDE). Приложение может создавать сообщения, которые могут использовать для своих внутренних нужд или для взаимодействия с окнами других процессов.Разработка программ зачастую напоминает священный ритуал, построенный на произнесении ряда обязательных магических заклинаний. Windows-заклинания позволяют вывести графическое окно, обработать поступающие сообщения. Комплексная цель: научиться создавать полноценные программы без использования дополнительных визуальных библиотек, таких как VCL в Delphi или MFC в C . Краткое изложение программного материала: в модуле показано как создавать на основе Win API функций: · ОкнаСоздать и зарегистрировать в Windows специальный класс окна с помощью функции REGISTERCLASS(); Регистрация специального класса окна производиться с помощью функции ATOM REGISTERCLASS(CONST WNDCLASS *LPWNDCLASS), возвращаемое значение которой равно нулю в случае ошибки. Следует отметить, что эту функцию можно применить только к родительскому окну, т.е. если приложение содержит главное окно и дочерние компоненты, то аргументом этой функции является дескриптор главного окна. Для того, чтобы организовать цикл получения сообщений, нужно в первую очередь написать функцию окна, т.е. функцию, которая будет совершать какие-либо действия в ответ на сообщение (адрес этой функции указывается в структуре WNDCLASS: IPFNWNDPROC:=@WINDOWPROC). Функция GETMESSAGE() выбирает первое сообщение из очереди сообщений, предназначенных для данного приложения, функция TRANSLATEMESSAGE() переводит виртуальный код сообщения в строку символов, функция DISPATCHMESSAGE() отправляет сообщение на обработку оконной функцией, заданной при регистрации класса окна.В качестве класса окна нужно использовать определенный в системе класс кнопки BUTTON. Основные доступные классы, предоставляемые операционной системой, следующие: LISTBOX, COMBOBOX, MEMO, MAINMENU, EDIT, SCROLLBAR, BUTTON, LISTVIEW, STATIC, TREEVIEW, HEADER, TOOLBAR, STATUSBAR, TRACKBAR, UPDOWN, PROGRESS, TABCONTROL, RICHEDIT, POPUPMENU, CHECKBOX, LABEL, GAUGE. Изменим оконную функцию, описанную в предыдущем разделе, следующим образом: function WINDOWPROC(HWND: THANDLE; UMSG, WPARAM, LPARAM: Integer): Integer; stdcall; export; "&Нажмите здесь", // надпись на кнопке ws_Child or ws_Visible or bs_PUSHBUTTON, // стили для кнопки WM_COMMAND: // проверяем, от какой кнопки пришло сообщение if LOWORD (WPARAM) = id_Button thenСоздание многострокового редактора производится на основе уже рассмотренного элемента EDIT путем использования стиля ES_MULTILINE следующим образом: HMEMO := CREATEWINDOW("EDIT", "Memo1", WS_VISIBLE or WS_CHILD or WS_DLGFRAME or WS_VSCROLL or ES_MULTILINE or ES_AUTOVSCROLL, // стили для edit-элемента Модифицируем код предыдущего пункта так, чтобы текст edit’а сохранялся в Memo1 после нажатия на кнопку.
План
Содержание
Введение
1. Архитектура Windows
1.1 Что такое Win API?
1.2 Оконный дескриптор, сообщение и событие
1.3 Функция MESSAGEBOX
Проектное задание
Тест рубежного контроля №1
2. Создание элементов управления
2.1 Создание окна средствами WINAPI
2.2 Создание кнопок (button) средствами WINAPI
2.3 Создание однострокового редактора (Edit) средствами WINAPI
2.3 Создание многострокового редактора (Memo) средствами WINAPI
2.4 Меню на WINAPI
2.5 Стандартные диалоговые окна
Проектное задание
Тест рубежного контроля №2
3. Управление сторонними приложениями
3.1 Утилита слежения за окнами и сообщениями WINSIGHT
3.2 Приемы управления сторонними приложениями
Проектное задание
Тест рубежного контроля №3
Список литературы
Введение
Настоящее учебно-методическое пособие посвящено API (application programming interfaces) функциям операционной системы Microsoft Windows, вызов которых мало отличается в различных языках программирования. Все примеры, приведенные в пособии, написаны на языке Object Pascal (среда программирования Delphi), как на наиболее распространенном языке обучения на департаменте физики ЮФУ.
Методическое пособие состоит из трех частей. В первой части даны основные понятия (дескриптор, сообщение), которые используются в дальнейшем. Также, в этой части описаны некоторые полезные функции, которые могут быть применены в любом приложении. Во второй части поэтапно описывается, как создать окно и управляющие элементы на нем без использования библиотек (VCL, MFC и пр.), лишь на основе API функций. Одним из преимуществ таких программ является их малый размер (десятки килобайт), что может быть очень важно в ряде случаев (например, при передаче приложений по сети). В третьей части описаны приемы управления сторонними приложениями на основе Windows API.
Предполагается, что читатель знаком со средой Delphi, знает синтаксис и умеет работать с указателями. Хотя примеры и написаны исключительно на Object Pascal, материал может представлять интерес и для программистов других языков.
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы