Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/34: Рейтинг темы: голосов - 34, средняя оценка - 4.50
Дашики
 Аватар для Дашустрик
7 / 7 / 1
Регистрация: 26.09.2008
Сообщений: 477

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

16.03.2009, 20:02. Показов 6978. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru