![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Win32 API - IOCTL_DISK_GET_DRIVE_LAYOUT_EX возможно ли на VB6 |
|
|
Win32 API - IOCTL_DISK_GET_DRIVE_LAYOUT_EX возможно ли на VB6
|
Пользователь Сообщения: 86 |
Тема изначально была созданна на http://bbs.vbstreets.ru , чтобы увеличить шанс решения проблемы дублирую тему на OSZone
Я пишу прогу что то типо diskpart.exe только с большими возможностями. Для начала хочу разобраться с большинством функция типа IOCTL_* Уже научился и разобрался с этими функциями. IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS IOCTL_STORAGE_GET_DEVICE_NUMBER IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER IOCTL_DISK_GET_LENGTH_INFO IOCTL_DISK_GET_DRIVE_GEOMETRY Затык начался на этих функциях: IOCTL_DISK_GET_DRIVE_LAYOUT_EX IOCTL_DISK_GET_PARTITION_INFO_EX Точнее проблема в структуре данных DRIVE_LAYOUT_INFORMATION_EX и PARTITION_INFORMATION_EX Не получается, видимо, ее правильно описать. Зато если я делаю так, то все успешно: Dim temp(4096) As Byte If DeviceIoControl(hDrive, IOCTL_DISK_GET_PARTITION_INFO_EX, ByVal 0&, 0, temp(0), 4096, dwOutBytes, ByVal 0&) Then MsgBox "Good!" Else MsgBox "Failed!" End If так я и понял что проблема в структуре. Private Enum PARTITION_STYLE PARTITION_STYLE_MBR = 0 PARTITION_STYLE_GPT = 1 PARTITION_STYLE_RAW = 2 Private Type DRIVE_LAYOUT_INFORMATION_MBR Signature As Long End Type Private Type DRIVE_LAYOUT_INFORMATION_GPT DiskId As Long StartingUsableOffset As Long UsableLength As Long MaxPartitionCount As Long End Type Private Type PARTITION_INFORMATION_EX PartitionStyle As PARTITION_STYLE StartingOffset As Long PartitionLength As Long PartitionNumber As Long RewritePartition As Boolean Mbr As PARTITION_INFORMATION_MBR Gpt As PARTITION_INFORMATION_GPT End Type Private Type DRIVE_LAYOUT_INFORMATION_EX PartitionStyle As PARTITION_STYLE PartitionCount As Long Mbr As PARTITION_INFORMATION_MBR Gpt As PARTITION_INFORMATION_GPT PartitionEntry(1) As PARTITION_INFORMATION_EX End Type Скажу сразу, что эта проблема в инете есть, но мало кто этим занимается. Буду рад если кто поможет. Если проблему решить не удастся то наверно придется вручную копать и разбирать MBR (читал тут ) |
|
------- Отправлено: 07:14, 21-02-2012 |
Пользователь Сообщения: 86
|
Профиль | Сайт | Отправить PM | Цитировать Тема значительно продвинулась на http://bbs.vbstreets.ru
|
------- Отправлено: 16:16, 21-02-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать diskpart.exe что это такое ? и почему на vb ?
|
Отправлено: 16:30, 21-02-2012 | #3 |
Пользователь Сообщения: 86
|
Профиль | Сайт | Отправить PM | Цитировать alex_03,
Программа Diskpart позволяет выполнять расширенный набор действий, поддерживаемых оснасткой «Управление дисками». http://support.microsoft.com VB , потому что мне так хочется ![]() |
------- Отправлено: 21:20, 21-02-2012 | #4 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Я так понимаю до программирования чего-то там важного и умного ,Вы делаете что-то вроде "обертки" для win api функций на языке visual basic. И кучу времени потратите только на то чтобы сделать враппер . И это еще до решения реальной задачи .
Почему нельзя сразу приступить к программированию логики задачи на языке Си++ ? По моему знать "плюса" намного выгоднее чем всякие там бейсики. По крайней мере ты избавляешься от вот такой вот толкотни воды в ступе. Тем более Вы будете писать системную программу. Я думаю что бейсик хорошо подходит для решения прикладных задач но не системных. Для системных задач только Си. Не стоит забывать что есть еще такая вещь как маршалинг данных через границы двух языков программирования. Мне вот приходилось подгружать библиотеку написанную кем-то и на чем-то , так вот при вызове некоторых функций которые принимают параметры текстовых строк - приходилось танцевать с бубном и все равно вылетал run-time error. |
|
Отправлено: 18:09, 22-02-2012 | #5 |
Пользователь Сообщения: 86
|
Профиль | Сайт | Отправить PM | Цитировать alex_03, спасибо.
Я осознаю что пора бы переходить на Си++, но все время писал только на VB6 (там обалденный способы работы со строками), надо наверно уже пробовать писать. Может посоветуешь дистрибутив Си++ и какую нибудь полезную документацию и справочник по функциям, ну и примеры желательно. Хотя бы подскажи дистрибутив и учебник для начала. |
------- Отправлено: 08:13, 29-02-2012 | #6 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать я бы скачал Visual Studio 2010 Express C++
вот ссылка http://www.microsoft.com/visualstudi...ns/express-iso Скачаете iso там есть уже все и С++ и C# и VB - все бесплатно - пользуйтесь на здоровье, потом только надо будет зарегистрировать свою версию - это легко - вам программа все сама подскажет Теперь надо скачать SDK вот ссылка http://www.microsoft.com/download/en...ng=en&id=18950 Скачаете iso там есть все необходимое для программирования под Windows В итоге у Вас будет бесплатный набор для программирования под Windows и конечно же читайте http://msdn.microsoft.com/library/default.aspx Вот тут Ваша тема ( наверное Вы уже в курсе ) http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx так книга ....... обязательно начните с этого : Керниган и Ричи - язык СИ вот ссылка на онлайн чтение или для скачивания http://lib.ru/CTOTOR/kernigan.txt_wi...-pictures.html http://thelib.ru/books/brayen_kernig...ik_c-read.html http://ik.3dscorpion.com.ua/files/st...Kernigan_C.pdf по С++ я бы начал сначала почитал немного Шилдта и самого автора языка С++ Бьёрна Страуструпа язык С++ это объектно-оринетированный язык , но все что заложено в Си есть и в С++. С++ как бы расширенная версия языка Си , расширенная объектностью , так что смело можно читать именно Кернигана и Ричи. И кстати СИ будет достаточно для системного программирования. Но! будет не удобно программировать после VB , тем более строки ![]() |
Отправлено: 17:43, 29-02-2012 | #7 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать Цитата alex_03:
Цитата alex_03:
Цитата alex_03:
|
|||
Отправлено: 18:42, 29-02-2012 | #8 |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Цитата ferget:
|
|
Отправлено: 22:35, 29-02-2012 | #9 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать вот аргумент
Цитата ferget:
|
|
Отправлено: 22:43, 29-02-2012 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - ListView в VB6 | Synthetyic_Man | Программирование и базы данных | 1 | 11-05-2010 05:52 | |
Странные глюки VB6 | krapar | Программирование и базы данных | 3 | 19-04-2006 12:11 | |
Прога в VB6 | DevilHaker | Программирование и базы данных | 2 | 12-09-2004 03:33 | |
Доступ к FTP из VB6 | Iskatell | Программирование и базы данных | 2 | 29-05-2004 02:31 | |
ComboBox в VB6 | Vitki | Программирование и базы данных | 1 | 12-05-2004 10:08 |
|