|
1 / 1 / 0
Регистрация: 16.10.2013
Сообщений: 5
|
|
Как реализовать работу с дисками компьютера в C++ Visual с использованием Win32 API16.10.2013, 21:16. Показов 4582. Ответов 9
Метки нет (Все метки)
Доброго времени суток. У меня есть вопрос по реализации работы функции GetDiskFreeSpace. Я находил примеры в интернете для реализации этой функции, но они были написаны в консольном режиме ( Информация о свободном месте на жестких дисках), мне же нужно написать ее с помощью Win32 API в оконном режиме. Как отобразить результат и можно ли это сделать с помощью MessageBox(), или есть какой-то метод попроще? Помогите пожалуйста.
P.S. Было бы неплохо если бы у пользователя была возможность выбирать диск из имеющихся на данный момент.
1
|
|
| 16.10.2013, 21:16 | |
|
Ответы с готовыми решениями:
9
В Win32 Api под Visual Studio что-то не так с кодировками Работа с дисками с использованием функций API Консольный мессенджер VK, подскажите как реализовать работу с API, пожалуйста |
|
87 / 86 / 27
Регистрация: 04.10.2012
Сообщений: 355
|
||||||
| 17.10.2013, 04:13 | ||||||
1
|
||||||
|
1 / 1 / 0
Регистрация: 16.10.2013
Сообщений: 5
|
||
| 17.10.2013, 11:48 [ТС] | ||
|
**************************** LPCSTR RootPathName; LPCTSTR RootPathName1; LPDWORD SectorsPerCluster; LPDWORD BytesPerSector; LPDWORD NumberOfFreeClusters; LPDWORD TotalNumberOfClusters; DWORD FREE; **************************** case IDM_GDFS: GetDiskFreeSpace ( "C:\\", SectorsPerCluster, BytesPerSector, NumberOfFreeClusters, TotalNumberOfClusters ); FREE=SectorsPerCluster*BytesPerSector* NumberOfFreeClusters; MessageBox(hWindow, "Вильно:" + (FREE), "Повідомлення", MB_OK); break; Вот примерно так я хочу реализовать, но вот выдает ошибку тут (FREE=SectorsPerCluster*BytesPerSector* NumberOfFreeClusters; ) с типамы данных, я что-то не разобрался, учил с++ очень давно уже, а тут как бы появилась нужда. И что-то мне подсказует что с MessageBox() я тож намутил. Добавлено через 15 минут Все проблема с типамы данных решена, написал следующий код: FREE=(DWORD64)SectorsPerCluster*(DWORD64 )BytesPerSector*(DWORD64)NumberOfFreeClu sters; Осталось сделать вывод информации, и выбор диска, помогите пожалуйста. Думал выбор сделать через comboBox но понятия не имею как это сделать. Там есть фукция getlogicaldrives но как ее использовать я низнаю.
0
|
||
|
87 / 86 / 27
Регистрация: 04.10.2012
Сообщений: 355
|
|||||||||||
| 17.10.2013, 19:41 | |||||||||||
|
Конкатекация строк не может быть организована операцией "+". "Hello " + "World!" - это не "Hello World!". Это сумма двух адресов памяти. Для слияния строк используйте функцию strcat.
Насчет комбобокса ничего не посоветую, пусть другие напишут. Потому что я не работаю с IDE. Используйте функцию, которую я предложил. Чтобы было именно так, как у вас, замените в ней строки 8 и 9 на:
1
|
|||||||||||
|
1 / 1 / 0
Регистрация: 16.10.2013
Сообщений: 5
|
|
| 17.10.2013, 20:58 [ТС] | |
|
Я понимаю что GetDiskFreeSpaceEx() проще, и не будет приколов если памяти больше 2 Гб, но это часть курсовой, и тут уже никак не замениш.
Может как-то через Memo вывести информацию, может так будет проще? А как выбрать диск Вы не подскажете?
0
|
|
|
87 / 86 / 27
Регистрация: 04.10.2012
Сообщений: 355
|
|
| 17.10.2013, 21:43 | |
|
Почему бы не создать текстовое поле, в которое юзер будет писать нужный ему диск?
0
|
|
|
1 / 1 / 0
Регистрация: 16.10.2013
Сообщений: 5
|
||
| 17.10.2013, 22:09 [ТС] | ||
|
0
|
||
|
|
|
| 18.10.2013, 00:23 | |
|
z0iberg, держи
Ошибка при открытие CD-ROW в коде В проекте на много больше чем тебе нужно (контекстное меню(меню по правой кнопке мыши), трей и бинго - возможность вытолкнуть любой лоток из РОМ-ов системы)
1
|
|
|
1 / 1 / 0
Регистрация: 16.10.2013
Сообщений: 5
|
|||||||
| 18.10.2013, 09:35 [ТС] | |||||||
0
|
|||||||
|
|
|
| 19.10.2013, 11:45 | |
|
z0iberg, прочти Этапы создания MFC приложения
0
|
|
| 19.10.2013, 11:45 | |
|
Помогаю со студенческими работами здесь
10
Скажите, пожалуйста, как правильно реализовать работу методов класса в lua api c++
Создание проекта win32 api в среде visual studio Разработка GUI средствами Win32 Api в среде программирования Visual C++ Win32 API, как создать меню? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульная разработка через 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. . . .
|