Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС СФМЭИ.doc
Скачиваний:
22
Добавлен:
17.09.2019
Размер:
1.37 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФИЛИАЛ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО БЮДЖЕТНОГО ОБРАЗОВАТЕЛЬНОГО УЧРЕЖДЕНИЯ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ «МЭИ» В Г. СМОЛЕНСКЕ

В.В. Малахов, И.В. Малашенкова, Е.А. Панкратова, О.В. Семенова

ПРОГРАММИРОВАНИЕ ПРИЛОЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ WINDOWS API

Смоленск 2011

УДК 004.42 (07)

М 18

Допущено учебно-методическим Советом филиала ФГБОУ ВПО «НИУ МЭИ» в

г. Смоленске в качестве методического пособия для студентов, обучающихся в филиале ФГБОУ ВПО «НИУ МЭИ» в г. Смоленске по направлению подготовки бакалавров «Информатика и вычислительная техника»

Подготовлено на кафедре «Вычислительной техники»

Рецензент

Кандидат технических наук филиала ФГБОУ ВПО «НИУ МЭИ» в г. Смоленске Ю.Г. Бояринов

Малахов В.В. ПРОГРАММИРОВАНИЕ ПРИЛОЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ WINDOWS API. Методические указания к лабораторным работам по дисциплине «Операционные системы» / В.В. Малахов, И.В. Малашенкова, Е.А. Панкратова, О.В. Семенова. – Смоленск: РИО филиала ФГБОУ ВПО «НИУ МЭИ» в г. Смоленске, 2012. – 100 с.

В методических указаниях приводятся описания лабораторных работ, соответствующие программе курса «Операционные системы».

Каждая лабораторная работа посвящена одному из разделов курса «Операционных систем» – работа с виртуальной памятью, механизм проецирования в память, создание процессов и потоков, синхронизация процессов и потоков, создание динамически подключаемых библиотек, отслеживание изменений файловой системы, отслеживание нажатых клавиш и т.д.

©филиал ФГБОУ ВПО «НИУ МЭИ» в г. Смоленск 2011

Введение

В методических указаниях к лабораторным работам по дисциплине «Операционные системы» рассматриваются основные теоретические принципы построения современных операционных систем, а также реализующие их технологии.

В данном сборнике содержится информация, необходимая для программирования в среде API Win32, целью сборника является описание концепций, структур и механизмов операционной системы Windows.

Несмотря на разнообразие операционных систем, ряд фундаментальных принципов остается неизменным – это программирование виртуальной памяти, процессов, потоков, объектов синхронизации, создание динамически подключаемых библиотек и т.д. Все перечисленные вопросы рассматриваются в данном сборнике.

При выполнении лабораторных работ студенты используют знания, полученные ранее при изучении дисциплин «Организация ЭВМ» и «Программирование на языках высокого уровня»

На основе полученных знаний студентам легче будет осваивать такие предметы, как «Операционные системы реального времени», «Системное и программное обеспечение», «Методы и средства защиты компьютерной информации», «Сети ЭВМ и телекоммуникации» и т.д.

1. Лабораторная работа № 1

ПОЛУЧЕНИЕ ХАРАКТЕРИСТИК КОМПЬЮТЕРА И ОПЕРАЦИОННОЙ СИСТЕМЫ

1.1. Цель работы

Целью данной работы является изучение процедур и функций Win32, позволяющих получить общую информации о характеристиках компьютера и операционной системы.

Для IBM совместимых ПК специфическими признаками программно-аппаратной среды являются:

  • тип ПК и версия операционной системы;

  • состав аппаратных средств;

  • физическое положение файлов на дисковом носителе;

  • наличие скрытых частей программы;

  • физические особенности (в том числе дефекты) носителя.

Некоторые из этих признаков очень индивидуальны (например, физические особенности некачественного носителя), другие обладают меньшей индивидуальностью (тип ПК, версия DOS).

В данной лабораторной работе рассматриваются функции Win32, с помощью которых можно получить перечисленную информацию.

1.2. Теоретическое введение

1.2.1. Получение информации об операционной системе

Для получения информации об операционной системе используется функция GetVersionEx:

function GetVersionEx(var lpVersionInformation: TOSVersionInfo): BOOL;

где

lpVersionInformation – структура типа TOSVersionInfo, состоящая из ряда полей, в которые функция GetVersionEx записывает информацию об операционной системе.

TOSVERSIONINFO = record

dwOSVersionInfoSize: DWORD; dwMajorVersion: DWORD; dwMinorVersion: DWORD; dwBuildNumber: DWORD; dwPlatformId: DWORD; szCSDVersion: array[0..127] of AnsiChar;

end;

Описание полей структуры TOSVersionInfo приведены в таблице 1.1.

Таблица 1.1 Поля структуры TOSVersionInfo

Поле

Описание

1

2

dwOSVersionInfoSize

Определяет размер структуры в байтах

dwMajorVersion, dwMinorVersion

Определяет версию ОС в формате Major.Minor (Например, 3.51 )

Продолжение таблицы 1.1

1

2

dwBuildNumber

Номер ОС

dwPlatformId

Платформа Windows. Возможные значения для платформы Windows приведены в таблице 1.2.

szCSDVersion

Версия Service Pack

Таблица 1.2 Возможные значения поля dwPlatformId из структуры TOSVersionInfo

Значение константы

Описание

VER_PLATFORM_WIN32s

Win32s on Windows 3.1.

VER_PLATFORM_WIN32_WINDOWS

Win32 on Windows 95.

VER_PLATFORM_WIN32_NT

Win32 on Windows NT.

При успешном завершении функция GetVersionEx возвращает ненулевое значение (True).