Загрузка данных
#include <iostream>
#include <windows.h>
#include <string>
int main() {
// НАСТРОЙКА КОДИРОВКИ
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
std::wcout << L"Системная информация" << std::endl;
std::wcout << std::endl;
// Для формирования итогового сообщения в MessageBox
std::wstring message = L"Системная информация:\n";
// ========================================================
// ПОЛУЧЕНИЕ ИМЕНИ КОМПЬЮТЕРА
// ========================================================
TCHAR computerName[MAX_COMPUTERNAME_LENGTH + 1];
DWORD compSize = MAX_COMPUTERNAME_LENGTH + 1;
if (GetComputerName(computerName, &compSize)) {
std::wcout << L"Компьютер: " << computerName << std::endl;
message += L"Компьютер: " + std::wstring(computerName) + L"\n";
} else {
DWORD err = GetLastError();
std::wcout << L"Ошибка получения имени компьютера. Код: " << err << std::endl;
message += L"Компьютер: Ошибка (" + std::to_wstring(err) + L")\n";
}
// ========================================================
// ПОЛУЧЕНИЕ ИМЕНИ ПОЛЬЗОВАТЕЛЯ (Часть 3)
// ========================================================
TCHAR userName[UNLEN + 1];
DWORD userSize = UNLEN + 1;
if (GetUserName(userName, &userSize)) {
std::wcout << L"Пользователь: " << userName << std::endl;
message += L"Пользователь: " + std::wstring(userName) + L"\n";
} else {
DWORD err = GetLastError();
std::wcout << L"Ошибка получения имени пользователя. Код: " << err << std::endl;
message += L"Пользователь: Ошибка (" + std::to_wstring(err) + L")\n";
}
// ========================================================
// ПОЛУЧЕНИЕ КОЛИЧЕСТВА ЯДЕР ПРОЦЕССОРА (Часть 3)
// ========================================================
SYSTEM_INFO sysInfo;
GetSystemInfo(&sysInfo);
std::wcout << L"Количество ядер: " << sysInfo.dwNumberOfProcessors << std::endl;
message += L"Количество ядер: " + std::to_wstring(sysInfo.dwNumberOfProcessors) + L"\n";
std::wcout << std::endl;
// ========================================================
// ПОЛУЧЕНИЕ ИНФОРМАЦИИ ОБ ОПЕРАТИВНОЙ ПАМЯТИ
// ========================================================
MEMORYSTATUSEX memStatus;
memStatus.dwLength = sizeof(memStatus);
if (GlobalMemoryStatusEx(&memStatus)) {
// Перевод из байт в гигабайты (1024 * 1024 * 1024 байт)
double totalGb = static_cast<double>(memStatus.ullTotalPhys) / (1024 * 1024 * 1024);
double availGb = static_cast<double>(memStatus.ullAvailPhys) / (1024 * 1024 * 1024);
std::wcout << L"Всего ОЗУ: " << totalGb << L" ГБ" << std::endl;
std::wcout << L"Свободно ОЗУ: " << availGb << L" ГБ" << std::endl;
std::wcout << L"Загрузка: " << memStatus.dwMemoryLoad << L"%" << std::endl;
message += L"Всего ОЗУ: " + std::to_wstring(totalGb) + L" ГБ\n";
message += L"Свободно ОЗУ: " + std::to_wstring(availGb) + L" ГБ\n";
message += L"Загрузка: " + std::to_wstring(memStatus.dwMemoryLoad) + L"%\n";
} else {
DWORD err = GetLastError();
std::wcout << L"Ошибка получения информации о памяти. Код: " << err << std::endl;
message += L"Память: Ошибка (" + std::to_wstring(err) + L")\n";
}
std::wcout << std::endl;
// ========================================================
// ВЫВОД ДИАЛОГОВОГО ОКНА
// ========================================================
MessageBox(
NULL,
message.c_str(),
L"Лабораторная работа №1",
MB_OK | MB_ICONINFORMATION
);
std::wcout << L"\nГотово! Нажмите Enter для выхода..." << std::endl;
std::wcin.get();
return 0;
}