Дашики
 Аватар для Дашустрик
7 / 7 / 1
Регистрация: 26.09.2008
Сообщений: 477

Логические диски в операционной системе Windows NT

16.03.2009, 20:02. Показов 7124. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу , которая отображает информацию о логических дисках в текстовом виде.

Добавлено через 2 минуты 34 секунды
Программа должна выполнять следующие функции:
• отображать имя логического диска в управляющем элементе ComboBox;
• отображать общую информации о диске : метку тома, серийный номер диска, имя файловой системы, количество секторов в одном кластере, количество байтов в одном секторе, размер диска в байтах, размер свободного пространства на дисках в байтах, размер занятого дискового пространства в байтах.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.03.2009, 20:02
Ответы с готовыми решениями:

Windows 7 не видит логические диски
На новый компьютер оставил старый диск который использовался как файлохранилище. Диск был разбит на три логических. При установке ОС...

Разбить диск на логические диски в Windows 7
Здравствуйте! Поясните пожалуйста как правильно разбить диск 1Тб? Логический системный диск С на 48Гб есть,в мой компьютер больше ничего не...

Операционной системе Windows исполнилось 25 лет
Ровно 25 лет назад, 20 ноября 1985 года, вышла первая версия операционной системы Windows 1.0. Билл Гейтс во время анонса тогда сказал, что...

27
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
05.05.2009, 21:03
Студворк — интернет-сервис помощи студентам
что это значит?
жжешь, однако :lol:
у тебя подружки есть? приводи их сюда, чувствую, будет аДДски весело :green:

Открой в студии файл с исходником, щелкни мышкой на эту строку и нажми Ctrl+L
0
Дашики
 Аватар для Дашустрик
7 / 7 / 1
Регистрация: 26.09.2008
Сообщений: 477
05.05.2009, 21:08  [ТС]
всё скомпилировалось,но не показывает остальной информации,а только функцию GetLogicalDriveStrings,в чем может быть проблема?

Добавлено через 1 минуту 2 секунды
Цитата Сообщение от Rififi Посмотреть сообщение
что это значит?
жжешь, однако :lol:
у тебя подружки есть? приводи их сюда, чувствую, будет аДДски весело :green:

Открой в студии файл с исходником, щелкни мышкой на эту строку и нажми Ctrl+L
язвить было необязательно,да я не очень хорошо разбираюсь,но умный человек не стал бы над этим смеятся,а просто помог бы
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
05.05.2009, 21:19
Дашустрик,
... просто помог бы ...
А что, Ctrl+L не сработал?
0
Дашики
 Аватар для Дашустрик
7 / 7 / 1
Регистрация: 26.09.2008
Сообщений: 477
05.05.2009, 21:25  [ТС]
ты внимательно прочитал сообщение?
0
Любитель давать советы
 Аватар для Alexiski
342 / 135 / 14
Регистрация: 12.01.2009
Сообщений: 511
06.05.2009, 23:51
Я же писал, что нужно еще сделать:
Цитата Сообщение от Alexiski Посмотреть сообщение
Только вызов этой самой функции GetVolumeInfo надо будет добавить в районе строки 106 примерно так:
C++
1
2
3
4
char* sVolInfo = VolumeInfo(sDrivePath);
msg += sVolInfo;
delete[] sVolInfo;
msg += '\n';
0
Дашики
 Аватар для Дашустрик
7 / 7 / 1
Регистрация: 26.09.2008
Сообщений: 477
07.05.2009, 01:50  [ТС]
добавила:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include <windows.h>
#include <tchar.h>
#include <string>
#include <iostream>
 
 
 
 
using namespace std; // для класса строки
 
//////////////////
// Простая таблица соответствия кодов из GetDriveType и читабельным
// названиям типов дисков
//
struct {
UINT type; // возвращаемый код из GetDriveType
LPCSTR name; // ascii имя
} DriveTypeFlags [] = {
{ DRIVE_UNKNOWN, "Unknown" },
{ DRIVE_NO_ROOT_DIR, "Invalid path" },
{ DRIVE_REMOVABLE, "Removable" },
{ DRIVE_FIXED, "Fixed" },
{ DRIVE_REMOTE, "Network drive" },
{ DRIVE_CDROM, "CD-ROM" },
{ DRIVE_RAMDISK, "RAM disk" },
{ 0, NULL},
};
char *GetVolumeInfo (char *Volume)
{
        char Name [MAX_PATH];
        char FileSysName [256];
        DWORD SerialNumber;
        DWORD MaxLength;
        DWORD FileSysFlags;
        DWORD SectorsPerCluster;
        DWORD BytesPerSector;
        DWORD NumberOfFreeClusters;
        DWORD TotalNumberOfClusters;
    
        char *str = new char[MAX_PATH];
        if (GetVolumeInformation (
                        Volume,
                        Name,
                        256,
                        &SerialNumber,
                        &MaxLength,
                        &FileSysFlags,
                        FileSysName,
                        256))
        {
                GetDiskFreeSpace (
                        Volume,
                        &SectorsPerCluster,
                        &BytesPerSector,
                        &NumberOfFreeClusters,
                        &TotalNumberOfClusters);
 
                sprintf(str,"\t## VOLUME %s INFO",Volume);
                sprintf(str,"%s\n Name : %s",str,Name);
                sprintf(str,"%s\n Serial number \t: %i",str,SerialNumber);
                sprintf(str,"%s\n File system \t: %s",str,FileSysName);
 
                sprintf(str,"%s\n SectorsPerCluster \t: %d",str,SectorsPerCluster);
                sprintf(str,"%s\n BytesPerSector \t: %d",str,BytesPerSector);
                sprintf(str,"%s\n NumberOfFreeClusters : %d",str,NumberOfFreeClusters);
                sprintf(str,"%s\n TotalNumberOfClusters :%d",str,TotalNumberOfClusters);
                sprintf(str,"%s\n Free space \t: %.2f%s",
                        str,100.0*NumberOfFreeClusters/TotalNumberOfClusters,"%");
        }
         else
                 sprintf (str,"\t## WRONG VOLUME NAME OR NOT READY!");
         return str;
};
//////////////////
// Стандартная функция tmain
//
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
 
// Получаем строки логических дисков— a:\b:\c:\... и т.д.
//
TCHAR buf[100];
DWORD len = GetLogicalDriveStrings(sizeof(buf)/sizeof(TCHAR),buf);
 
// Показываем информацию о каждом диске.
//
string msg = "Logical Drives:\n"; // строка STL
for (TCHAR* s=buf; *s; s+=_tcslen(s)+1) {
TCHAR * sDrivePath = s;
msg += sDrivePath;
msg += " ";
 
// GetDriveType получает одно из перечисленных значений
// DRIVE_UNKNOWN, и т.д.
//
UINT uDriveType = GetDriveType(sDrivePath);
 
// Находим тип диска в таблице.
//
for (int i=0; DriveTypeFlags[i].name; i++) {
if (uDriveType == DriveTypeFlags[i].type) {
msg += DriveTypeFlags[i].name;
break;
}
}
char* sVolInfo = VolumeInfo(sDrivePath);
msg += sVolInfo;
delete[] sVolInfo;
msg += '\n';
}
cout << msg.c_str();
 
Sleep(2000);
return 0;
}
2 ошибки:
C:\Documents and Settings\Дашустрик\Рабочий стол\Систематичное программирование\3\3.cpp(107) : error C2065: 'VolumeInfo' : undeclared identifier
C:\Documents and Settings\Дашустрик\Рабочий стол\Систематичное программирование\3\3.cpp(107) : error C2440: 'initializing' : cannot convert from 'int' to 'char *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.
0
Любитель давать советы
 Аватар для Alexiski
342 / 135 / 14
Регистрация: 12.01.2009
Сообщений: 511
07.05.2009, 02:26
Это я ошибся, функция-то называется GetVolumeInfo, а я написал просто VolumeInfo, вот она и не находит.

В строке 107:
C++
1
char* sVolInfo = GetVolumeInfo(sDrivePath);
1
Дашики
 Аватар для Дашустрик
7 / 7 / 1
Регистрация: 26.09.2008
Сообщений: 477
08.05.2009, 13:54  [ТС]
спасибо большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2009, 13:54

Операционной системе Windows XP исполнилось 10 лет
Ровно 10 лет назад корпорация Microsoft начала поставки первых копий операционной системы Windows XP. За прошедшее десятилетие эта ОС стала...

Ошибка 7023 в операционной системе windows xp pack 2
подскажите в какой раздел мне обратиться чтобы попросить помощь в устранении ошибки Заранее благодарен

Ноутбук Lenovo с windows 8, как разделить диск С на логические диски?
купила ноутбук Lenovo с windows 8, хочу разделить диск С, чтобы отдельно хранить свою информацию. но не получается. пробовала программой...

Логические диски
Здравствуйте! У меня такой вопрос как определить количество дисков и их имена???

2 сервера и логические диски!
Доброго времени суток Уважаемые форумчане!!!! Есть такая проблемка: на предприятии имеются 2 ссервера! Планируется сделать так чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Опции темы

Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru