Программа типа «DiskInfo»
Список всех логических дисков в системе.
Получить тип каждого диска присутствующего в системе и дать пояснения каждому типу диска.
Получить информацию о дисках в системе и файловых системах Используемых на них.
Получить информацию о занятости и свободном месте на каждом из дисков.
Получить информацию о системной памяти.
Получить информацию о названии компьютера
Получить Название текущего пользователя
Получить информацию о текущем системном каталоге, Временном каталоге, текущем рабочем каталоге.
Помогите доделать
# include <Windows.h>
# include <conio.h>
# include <iostream>
# include <locale>
int main()
{
setlocale(LC_ALL, "rus");
int sz = GetLogicalDriveStrings(NULL, 0);
TCHAR* szLogicalDrives = new TCHAR[sz];
GetLogicalDriveStrings(sz, szLogicalDrives);
while (*szLogicalDrives)
{
TCHAR szDisk[80];
lstrcpy(szDisk, szLogicalDrives);
GetDriveType(szDisk);
UINT uDriveType = GetDriveType(szDisk);
if (uDriveType == DRIVE_FIXED)
{
std::wcout << szDisk << std::endl;
//определяем флаги
std::wcout << L"Системные флаги диска:\t";
DWORD dwSystemFlags;
GetVolumeInformation(szDisk, NULL, 0, NULL, 0, &dwSystemFlags, NULL, 0);
std::wcout << dwSystemFlags << L"\n";
//определяем объем
__int64 uliTotalBytes;
GetDiskFreeSpaceEx(szDisk, NULL, (PULARGE_INTEGER)&uliTotalBytes, NULL);
std::wcout << L"Объем диска:\t" << uliTotalBytes / (1024 * 1024) << L" МБ\n";
std::wcout << std::endl;
}
while (*szLogicalDrives) szLogicalDrives++;
szLogicalDrives++;
}
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
А впрочем... что мне, жалко, что ли?
Для тех чечако, кто не умеет искать информацию самостоятельно:
#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>
#include <iostream>
#include <format>
#pragma comment(lib,"Advapi32")
using namespace std;
const char* disk_type[] =
{
"unknown", "no root dir", "removable", "fixed", "remote", "CD-ROM", "RAMDISK"
};
int main()
{
{
cout << "Drives:\n";
DWORD d = GetLogicalDrives();
for(char disk = 'A'; d; d >>= 1, disk++)
{
if (d&1)
{
char root[80] = {0};
root[0] = disk;
strcat(root,":\\");
cout << "Drive " << disk << ": " << disk_type[GetDriveType(root)] << "\n";
DWORD SectorsPerCluster,BytesPerSector,NumberOfFreeClusters,TotalNumberOfClusters;
if (GetDiskFreeSpace(root,&SectorsPerCluster,&BytesPerSector,
&NumberOfFreeClusters,&TotalNumberOfClusters))
{
unsigned long long t = SectorsPerCluster, f;
t *= BytesPerSector; f = t;
t = t * TotalNumberOfClusters / 1024 / 1024;
f = f * NumberOfFreeClusters / 1024 / 1024;
cout << format("Free space: {0:10d} of {1:10d} MB\n", f, t);
char volName[256], fileSystem[256];
if (GetVolumeInformation(root,volName,256,0,0,0,fileSystem,256))
{
cout
<< "File system: " << fileSystem << ", volume name: "
<< volName << "\n";
}
}
cout << "\n";
}
}
cout << "----------------8<----------------\n";
}
{
unsigned long long M;
char Name[256], user[256];
DWORD sz = 256, uz = 256;
if (GetUserName(user,&uz) &&
GetComputerName(Name,&sz) &&
GetPhysicallyInstalledSystemMemory(&M))
{
cout << "Computer \"" << Name << "\" (user name \"" << user
<< "\") has " << M/1024 << " MB of physical memory\n";
cout << "----------------8<----------------\n";
}
}
{
char path[300];
if (GetSystemDirectory(path,300))
cout << "System directory : " << path << "\n";
if (GetWindowsDirectory(path,300))
cout << "Windows directory: " << path << "\n";
if (GetCurrentDirectory(300,path))
cout << "Current directory: " << path << "\n";
}
}