Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы / Задания / Operatsionnye_sistemy_lr_zaochn.pptx
Скачиваний:
13
Добавлен:
15.02.2021
Размер:
4.51 Mб
Скачать

ОПЕРАЦИОННЫЕ

СИСТЕМЫ

Лабораторный практикум Рекомендации по выполнению работ (для заочного обучения)

Лабораторная работа №1. Функции получения системной информации

Цель работы: получение практических навыков по программированию в Win32 API:

Консольное? Окна?

Программирование на с++?

Программирование на другом ЯП?

С#

Python

Задание

Разработанное программное обеспечение приложения, обеспечивающего получение следующей системной информации:

Имя компьютера, имя пользователя;

Пути к системным каталогам Windows;

Версия операционной системы;

Системные метрики (не менее 2 метрик);

Системные параметры (не менее 2 параметров);

Системные цвета (определить цвет для некоторых символьных констант и изменить его на любой другой);

Функции для работы со временем;

4 дополнительные API-функции

Начинаем с определения и структуры работы

Windows application programming interfaces – программный интерфейс пользовательского режима для ОС семейства Windows

В настоящее время термин Windows API может относитьсяПриложение 32-разрядным, так и 64-разрядным программным­

Windows

Создание классических приложений для компьютеров с Windows https:// API developer.microsoft.com/en-us/windows/desktop/develop

■ Идея: последовательно вызывать функции для получения

информации о системе

ОС Windows

 

Пути получения имени компьютера

• Использовать winapi

• Использовать класс Environment

Функция из методички

BOOL GetComputerName(

LPTSTR IpBuffer, // Адрес буфера имени.

LPDWORD nSize // Размер буфера имени.

);

Примерный результат работы

Получение версии Windows

1.Средствами языка (C#)

2.С использованием API-функций:

GetVersion()

GetVersionEx()

3.Командой ver из командной строки Windows

4.Из реестра

1.

Environment.OSVersion.VersionString

Environment - Класс

OSVersion - Свойство

OperatingSystem -

Класс

VersionString -

Свойство

Предоставляет сведения о текущей среде и платформе, а также необходимые для управления ими средства.

Возвращает объект OperatingSystem, который содержит идентификатор текущей платформы и номер версии.

Предоставляет информацию об операционной системе, например версию и идентификатор платформы.

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

2.1. GetVersion()

 

OSVERSIONINFOEXA

 

{

structureC++:

 

 

private struct OSVERSIONINFOEX {

C#:

 

 

typedef

OSVERSIONINFOEXA

 

[StructLayout(LayoutKind.Sequential)]

 

1.

DWORD dwOSVersionInfoSize;

1.

public int dwOSVersionInfoSize;

 

2.

DWORD dwMajorVersion;

2.

public uint dwMajorVersion;

 

3.

DWORD dwMinorVersion;

3.

public uint dwMinorVersion;

 

4.

DWORD dwBuildNumber;

4.

public uint dwBuildNumber;

 

5.

DWORD dwPlatformId;

5.

public uint dwPlatformId;

 

 

 

 

 

 

[MarshalAs(UnmanagedType.ByValTStr, SizeConst

6.

CHAR szCSDVersion[128];

 

 

= 128)]

 

6.

public string szCSDVersion;

 

7.

WORD wServicePackMajor;

 

7.

public UInt16 wServicePackMajor;

 

8.

WORD wServicePackMinor;

 

8.

public UInt16 wServicePackMinor;

 

9.

WORD wSuiteMask;

 

9.

public UInt16 wSuiteMask;

 

10.

BYTE wProductType;

 

10.

public byte wProductType;

 

11.

BYTE wReserved;

 

11.

public byte wReserved;

 

} OSVERSIONINFOEXA, *POSVERSIONINFOEXA,

 

 

 

}

 

 

*LPOSVERSIONINFOEXA;