https://pastein.ru/t/hu

  скопируйте уникальную ссылку для отправки


#include "pch.h"
#include <iostream>
#include <conio.h>
#include <windows.h>
#include <locale>
#include <tchar.h>
typedef LONG NTSTATUS, * PNTSTATUS;
#define STATUS_SUCCESS (0x00000000)
typedef NTSTATUS(WINAPI* RtlGetVersionPtr)(PRTL_OSVERSIONINFOW);
#define cout wcout
#define OSVERSIONINFO OSVERSIONINFOEX
using namespace std;

RTL_OSVERSIONINFOW GetRealOSVersion();

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 << "Имя пользователя: " << str << endl;

	GetComputerName(str, &sz);
	cout << "Имя компьютера: " << str << endl;

	GetSystemDirectory(str, 4096);
	cout << "Путь к системной папке: " << str << endl;

	GetWindowsDirectory(str, 4096);
	cout << "Пути к папке windows: " << str << endl;

	GetTempPath(4096, str);
	cout << "Путь к временной папке: " << str << endl;


	cout << "Версия системы (Основной номер. дополнительный. сборка)" << GetRealOSVersion().dwMajorVersion << "." << GetRealOSVersion().dwMinorVersion << "." << GetRealOSVersion().dwBuildNumber << endl
		<< "Размер структуры OSVERSIONINFO: " << GetRealOSVersion().dwOSVersionInfoSize << endl
		<< "Платформа операционной системы: " << GetRealOSVersion().dwPlatformId << endl
		<< "Последний установленный служебный пакет: " << GetRealOSVersion().szCSDVersion << endl;



	cout << endl << "Системные метрики:" << endl;
	cout << "Количество клавиш у мышки: " << GetSystemMetrics(43) << endl;
	cout << "Ширина курсора в пикселях: " << GetSystemMetrics(13) << endl;
	cout << "Высота экрана: " << GetSystemMetrics(1) << endl;

	unsigned int param;
	SystemParametersInfo(SPI_GETACCESSTIMEOUT, 0, &param, 0);
	cout << endl << "Системные параметры:\nПараметр SPI_GETACCESSTIMEOUT: " << param << endl;// Временные интервалы
	SystemParametersInfo(SPI_GETBEEP, 0, &param, 0);
	cout << "Признак разрешения звуковых сигналов: " << param << endl;
	SystemParametersInfo(SPI_GETICONMETRICS, 0, &param, 0);
	cout << "Признак, дающий информацию о характеристиках иконок: " << param << endl;


	int n[] = { COLOR_WINDOW, COLOR_DESKTOP };
	COLORREF color = GetSysColor(n[0]);
	COLORREF color2 = GetSysColor(n[1]);

	unsigned long p[] = { color, color2 };
	COLORREF newcolor[] = { RGB(0,60,180), RGB(0,255,0) };//синий //зеленый
	SetSysColors(2, n, newcolor);
	cout << "Изменён цвет рабочего стола и фон окна.\nНажмите любую клавишу для возвращение в исходное состояние.";
	_getch();
	SetSysColors(2, n, p);
	cout << endl;


	SYSTEMTIME var1, var2;
	GetLocalTime(&var1);
	GetSystemTime(&var2);
	cout << "\n\nИнформаци о времени:\nЛокальное время: дата " << var1.wDay << "." << var1.wMonth << L"." << var1.wYear << " время " << var1.wHour << ":" << var1.wMinute
		<< "\nСистемное время: "
		<< "дата " << var2.wDay << "." << var2.wMonth << "." << var2.wYear << " время " << var2.wHour << ":" << var2.wMinute << endl;

	cout << "\n\n Индивидуальное задание\n" << "1.Ограничение курсора окном консоли\n";


	RECT rcClip;
	RECT rcOldClip;
	GetClipCursor(&rcOldClip);
	GetWindowRect(GetForegroundWindow(), &rcClip);
	ClipCursor(&rcClip);
	_getch();
	ClipCursor(&rcOldClip);


	cout << "2.Активный идентификатор языка ввода: " << GetKeyboardLayout(0)
		<< "\n3.GetUserDefaultLCID (Идентификатор определяемого пользователем языка операционной системы)= " << GetUserDefaultLCID() << endl;
	cout << "4.Параметры курсора= " << ShowCursor(1) << endl;


	system("PAUSE");
	return 0;
}


RTL_OSVERSIONINFOW GetRealOSVersion() {
	HMODULE hMod = ::GetModuleHandleW(L"ntdll.dll");
	if (hMod) {
		RtlGetVersionPtr fxPtr = (RtlGetVersionPtr)::GetProcAddress(hMod, "RtlGetVersion");
		if (fxPtr != nullptr) {
			RTL_OSVERSIONINFOW rovi = { 0 };
			rovi.dwOSVersionInfoSize = sizeof(rovi);
			if (STATUS_SUCCESS == fxPtr(&rovi)) {
				return rovi;
			}
		}
	}
	RTL_OSVERSIONINFOW rovi = { 0 };
	return rovi;
}