Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа 1 Пантелеева БСТ1904

.docx
Скачиваний:
33
Добавлен:
04.03.2022
Размер:
111.75 Кб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Ордена Трудового Красного Знамени

Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования

Московский технический университет связи и информатики

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

по теме: «Функции получения системной информации»

Выполнила: Пантелеева К.А.

Группа: БСТ1904

Вариант: 13

Москва, 2021

Оглавление

Цель работы 3

Лабораторное задание 3

Код программы 3

Результаты работы 6

Цель работы

Получение практических навыков по программированию в Win32 API с использованием аппаратных и системных функций.

Лабораторное задание

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

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

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

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

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

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

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

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

  • Дополнительные API-функции: GetClipCursor, GetKeyboardType, GetUserDefaultLCID, ShowCursor.

Код программы

OS labs.cpp

#include "stdafx.h"

#include <iostream>

#include <conio.h>

#include <windows.h>

#include <locale>

#include <VersionHelpers.h>

#define cout wcout

//#define OSVERSIONINFO OSVERSIONINFOEX

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL, "rus");

cout.imbue(locale("rus_rus.1251"));

WCHAR str[4096];

DWORD sz = 4096;

GetUserName(str, &sz); //имя пользователя

cout << "User name: " << str << endl;

GetComputerName(str, &sz);//имя компьютера

cout << "Computer name: " << str << endl;

GetUserName(str, &sz);//имя пользователя

cout << "User name: " << str << endl;

GetSystemDirectory(str, 4096); //Путь к системной папке

cout << "The path to the system folder: " << str << endl;

GetWindowsDirectory(str, 4096);//Путь к папке Windows

cout << "The path to the windows folder: " << str << endl;

GetTempPath(4096, str);//Путь к временной папке

cout << "The path to the temporary folder: " << str << endl;

OSVERSIONINFO osversion;

memset(&osversion, 0, sizeof(OSVERSIONINFO));

osversion.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);

//GetVersionEx(&osversion);

if (!IsWindows10OrGreater()) { cout << "Not win10" << endl; }

else {cout << "Windows 10"<< endl; }

cout << "System metrics:" << endl

//Системные метрики

<< "Screen Resolution: " << GetSystemMetrics(0)

//Разрешение экрана

<< "x" << GetSystemMetrics(1) << endl

<< "Does the mouse have a scroll wheel? ";

//Есть ли у мыши колесо прокрутки?

GetSystemMetrics(75) ? cout << "Yes" << endl : cout << "No" << endl;

cout << "The number of keys on the mouse: " << GetSystemMetrics(43) << endl

//Количество клавиш на мыши

<< "Can the mouse keys be swapped?";

//Можно ли поменять местами клавиши мыши?

GetSystemMetrics(23) ? cout << "Yes" << endl : cout << "No" << endl;

ACCESSTIMEOUT param;

param.cbSize = sizeof(ACCESSTIMEOUT);

UINT uiParam = sizeof(param);

SystemParametersInfo(SPI_GETACCESSTIMEOUT, 0, &param, 0);

cout << endl << "System Parameters:\nThe SPI_GETACCESSTIMEOUT parameter: " << uiParam << endl;// Временные интервалы

//Системные параметры:\параметр ВРЕМЕНИ ОЖИДАНИЯ доступа SPI_GET:

ANIMATIONINFO param2;

param2.cbSize = sizeof(ANIMATIONINFO);

UINT uiParam2 = sizeof(param2);

SystemParametersInfo(SPI_GETANIMATION, 0, &param2, 0);

cout << "The SPI_GETANIMATION parameter: " << uiParam2 << endl; //Данные об анимации

unsigned int param3;

SystemParametersInfo(SPI_GETBEEP, 0, &param3, 0);

cout << "Indication of the resolution of audio signals: " << param3 << endl;

//Индикация разрешения звуковых сигналов

ICONMETRICS param4;

param4.cbSize = sizeof(ICONMETRICS);

UINT uiParam4 = sizeof(param4);

SystemParametersInfo(SPI_GETICONMETRICS, 0, &param4, 0);

cout << "A flag that gives information about the characteristics of icons: " << uiParam4 << endl;

//Флаг, дающий информацию о характеристиках иконок

int n[] = { COLOR_3DDKSHADOW, COLOR_3DDKSHADOW };

COLORREF color = GetSysColor(n[0]);//Dark shadow for three-dimensional display elements.

COLORREF color2 = GetSysColor(n[1]);//Desktop.

unsigned long p[] = { color, color2 };

COLORREF newcolor[] = { RGB(150, 75, 0), RGB(0, 0, 255) };//Коричневый//Синий

SetSysColors(2, n, newcolor);

cout << "The color of the shadow for the elements has been changed.\nPress any key to return to the original state.";

//Цвет тени для элементов был изменен.\нажмите любую клавишу, чтобы вернуться в исходное состояние.

_getch();

SetSysColors(2, n, p);

SYSTEMTIME var1, var2;

GetLocalTime(&var1);

GetSystemTime(&var2);

cout << "\n\nTime information:\nLocal Time: date " << var1.wDay << "." << var1.wMonth << L"." << var1.wYear << " time " << var1.wHour << ":" << var1.wMinute

<< "\nSystem time: "

<< "date " << var2.wDay << "." << var2.wMonth << "." << var2.wYear << " time " << var2.wHour << ":" << var2.wMinute << endl;

cout << "\n\n Individual task\n";

RECT mem;

GetClipCursor(&mem);

cout << "\n1.GetClipCursor = " << mem.left << "." << mem.bottom << "." << mem.right << "." << mem.top;

wcout << "\n1.The cursor is locked within {200,200,800,800}\n";

mem = { 200,200,800,800 };

ClipCursor(&mem);

cout << "\n1.GetClipCursor. New values = " << mem.left << "." << mem.bottom << "." << mem.right << "." << mem.top;

_getch();

cout << "\n2.GetKeyboardLayoutType = " << str

<< "\n3.GetUserDefaultLCID (ID of the operating system's user-defined language) = " << GetUserDefaultLCID() << endl;

cout << "\n4.Cursor Parameters= " << ShowCursor(1) << endl;

system("PAUSE");

return 0;

}

Результаты работы