|
|
|||||||||||||
Как идентифицировать съемный жесткий диск24.12.2012, 15:10. Показов 6787. Ответов 10
Метки нет (Все метки)
Распознать среди других томов.
Читал через класс Win32_LogicalDisk, свойства DriveType и MediaType. Получил данные:
E - это съемный ЖД. Отделить от С:, как видите, не получилось. Еще способы? Другое свойство попробовать читать? У меня нет съемного ЖД. Сложно самому тестировать.
0
|
|||||||||||||
| 24.12.2012, 15:10 | |
|
Ответы с готовыми решениями:
10
|
|
|
|||
| 24.12.2012, 17:42 | |||
|
0
|
|||
|
|
|
| 24.12.2012, 21:54 | |
|
2
|
|
|
887 / 189 / 16
Регистрация: 18.07.2011
Сообщений: 260
|
||||||
| 25.12.2012, 12:33 | ||||||
Сообщение было отмечено как решение
Решение
Очень интересная задача.
Моё решение:
0
|
||||||
|
|
|
| 25.12.2012, 12:40 | |
|
0
|
|
|
887 / 189 / 16
Регистрация: 18.07.2011
Сообщений: 260
|
|
| 25.12.2012, 12:47 | |
|
У меня Win8.
Решение для XP дам, когда доберусь до компьютера.
0
|
|
|
|
|||||||
| 25.12.2012, 15:04 | |||||||
Сообщение было отмечено как решение
Решение )Решил заюзать DeviceIoControl, вещь та ещё! Смысл в том, что если диск возвращает DRIVE_FIXED и в то же время подключение по USB, то можно однозначно сказать, что это внешний диск. На форме Text1, в котором буква диска именно так = "С:" и кнопка.
1
|
|||||||
|
|
|||||||||||||||||
| 25.12.2012, 15:48 [ТС] | |||||||||||||||||
|
dzug, не будет. Это и есть DriveType.
Не по теме: К тому же в коде на дописан отлов ошибок и обход сообщения "Устройство не готово" по свойству isReady. Уточняющие ответы: - Вы пишете, что у Вас нет съемного ЖД. Тогда каким образом Вы протестировали из таблицы? Практическая значимость - тема берет начало отсюда: Запись презентаций на 300 носитетелей . Результаты теста (табличка) дал тов.Beren. - Что конкретно подразумевается под съемным диском? только жесткие? Да. Остальные можно различать по критериям: DriveType = 2 и Имя диска = A: или B: - значит дисковод. DriveType = 2 - значит flash-drive. B - конечно можно назначить и ЖД, но тогда DriveType будет = 3. Вот собственно DriveType Enum:
- По каким интерфейсам предполагается подключение? USB. Лично у меня материнская плата ASUS P8P67, которая имеет опцию ~ "Разрешить отключение ЖД..." Любой SATA-диск отображается в системном лотке как "Устройство, готовое к извлечению" (там же где и флешки). По сути такой ЖД становиться тоже съемным. Позволю себе позже расширить эту тему до определения и таких случаев. - Распознать когда? При подключении, или когда уже подключено? Уже дал ответ выше. Код крутится циклом. Как только устройство подключено, на него должен скопироваться файл, проверка контрольной суммы, отключение ус-ва. А вообще, в каком контексте (зачем) задан этот вопрос? - Каковы вообще исходные данные: буквы томов, или все-таки устройства? (на у-ве может быть несколько томов) Да, может. Код должен найти их все. На какой записывать... первый по физической разметке. Как его найти - другой вопрос. Давайте не в этой теме.
0
|
|||||||||||||||||
|
Телекомпания ВИD
1364 / 115 / 19
Регистрация: 14.10.2012
Сообщений: 100
|
||||||||
| 26.12.2012, 13:45 | ||||||||
Сообщение было отмечено как решение
Решение
Осталось мне внести свою скромную лепту.
Вношу с задержкой, поскольку пришлось ждать тестирования на чужом съемном HDD. И потом, мне не нравится выкладывать непроверенные решения. Но еще до тестирования у меня возникли мысли относительно данной проблемы, и мне бы не хотелось, чтобы они пропали зря. Могут кому-то пригодиться, ведь абсолютно идентичные задачи встречаются редко. При тестировании использовались операционные системы Windows XP. 1. Способ через WMI. Метод ненадежный, да и выводит не всегда (критика WMI описана здесь: Получение информации о процессоре, накопителях и материнской плате в среде Access 2007). Пример использования WMI:
а) MediaDescription (более точное определение физ. устройства; зависит от параметра MediaType) б) MediaType (тип физического устройства; существует 66 значений данного параметра, нужными являются: 15-Winchester Removable Disk и 29-Hard Disk). в) Model (наименование модели диска) г) Removable (является ли устройство съемным без необходимости выключения питания) д) SerialNumber (серийный номер) При тестировании, к сожалению, определился только параметр SerialNumber. И определяется, судя по всему, только для IDE-накопителей, SATA-не распознает. Параметр MediaType оказался бы очень полезным. Для Win32_DiskDrive - подходящие параметры: а) Model (наименование модели диска) б) InterfaceType (тип интерфейса подключения дискового устройства; возможные значения: SCSI, HDC, IDE, USB, 1394) в) PNPDeviceID (идентификационный параметр диска, получаемый с помощью Plug and Play; при невозможности получения наименования модели и серийного номера следует использовать обработку этого параметра, либо напрямую читать и обрабатывать данное значение из реестра (см. ниже)) Все три параметра корректно определялись при цестировании. Существует еще один полезный параметр г): г) MediaType (тип дискового устройства; для Windows Server 2003, Windows XP, Windows 2000, и Windows NT 4.0 возможные значения: Removable media, Fixed hard disk, Unknown; начиная с Windows Vista возможные значения: External hard disk media, Removable media other than floppy, Fixed hard disk media, Format is unknown). д) SerialNumber (серийный номер; параметр не поддерживается на системах Windows Server 2003, Windows XP, Windows 2000, и Windows NT 4.0) Тестирование показало, что для системного и съемного дисков параметр MediaType = "Fixed hard disk media" одинаков на Windows XP. За отсутствием систем Vista/7 проверить параметр на них не удалось. Вывод: для решения поставленной задачи достаточно детектировать параметр Win32_DiskDrive => InterfaceType, поскольку съемные диски чаще всего подключаются через USB. Для съемного диска он показал - "USB", для системного - "IDE". Альтернатива - проверять, заняты ли USB-порты, и если да, то чем (USB-накопитель, HDD и т.д.). 2. Способ через реестр. В ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl Set\Enum\ для каждого интерфейса есть свой подраздел, например, IDE или USBSTOR. Поэтому параметры можно брать напрямую отсюда, что немного увеличивает быстродействие (по сравнению с WMI). Кроме того, к WMI могут быть применены политики безопасности, либо эта служба может быть вообще отключена. Согласно небольшому исследованию, системные диски прописываются, как правило в подраздел IDE, а внешние HDD, подключаемые через USB - в подраздел USBSTOR, как и флеш-накопители. 3. Преимущества использования WMI и считывания из реестра: простота использования в скриптах. Недостатки: в общем случае - недостаточное быстродействие WMI по сравнению с иными способами; для новых устройств должно пройти достаточное вреся, пока они установятся на ПК, а все необходимые параметры запишутся в реестр (к ответу на вопрос 4. Поэтому существуют и другие способы считывания параметров, например: а) Использование метода прямого физического доступа к диску с правами администратора; -> (съемный HDD не определился) б) чтение с использованием SCSI по обходному пути; опознание: вместо "\\.\PhysicalDrive" используется контроллер "\\.\Scsi", административные права не требуются. -> (съемный HDD не определился) в) использование метода прямого физического доступа с минимальными правами; опознание: в CreateFile вместо "GENERIC_READ | GENERIC_WRITE" используется параметр "0" -> (определились параметры обоих физических дисков, оба - "fixed") г) чтение параметров SMART; -> (определился только системный диск) В указанных случаях определялись основные атрибуты физических дисков, такие как модель, серийный номер и т.д.; тип интерфейса подключения не являлся определяемым параметром (оcновной интерфейс - IDE). 5. Результаты тестирования решения от Pro_grammer: Диск является DRIVE_REMOVABLE , подключен по Резерв (Floppy, пустой, с дискетой) Диск является DRIVE_FIXED, подключен по Ata (системный HDD) Диск является DRIVE_FIXED, подключен по Usb (съемный HDD) Диск является DRIVE_CDROM, подключен по Atapi (физический CD-ROM, пустой и непустой) Диск является DRIVE_CDROM, подключен по Scsi (виртуальный CD-ROM, пустой и непустой) Диск является DRIVE_REMOVABLE , подключен по Usb (флеш-накопитель, присутствует) Диск является DRIVE_REMOVABLE , подключен по (флеш-накопитель, отсутствует) 6. Win32_LogicalDisk => DriveType и MediaType не определяют, является ли HDD внешним, т.к. это логический уровень. DriveType - определяет тип логического диска. MediaType - определяет точный тип носителя логического диска. Существует 22 значения данного параметра (0-неизвестный формат; 11-съемный носитель, отличный от дискеты (Removable media other than floppy); 12-фиксированный жесткий диск (Fixed hard disk media); остальные значения относятся к различным форматам гибких дисков Floppy). 7. Следует учитывать, что на физическом устройстве может быть несколько томов. Алгоритм 1 - по внешнему физическому устройству HDD определяются "внешние" тома. Алгоритм 2 - соответственно, наоборот. Алгоритм 3 (возможно применим к практической значимости) - внутренние диски уже заранее заданы на конкретной системе либо определены, все остальные будут являться внешними. Определять можно, например, так. На любой Windows-системе всегда есть системный том (%SYSTEMDRIVE%). По нему следует найти сам физический диск и интерфейс, по которому он подключен. Все остальные интерфейсы автоматически могут считаться "внешними". Вычислять остальные "внутренние" тома не имеет смысла, так как могут использоваться несколько физических "внутренних" дисков (с данными). Сравнение производить по типу интерфейса. Выяснить соответствие между физическими и логическими дисками помогут следующие параметры: а) Win32_PhysicalMedia => Tag б) Win32_DiskDrivePhysicalMedia => Antecedent, Dependent в) Win32_DiskDriveToDiskPartition => Antecedent, Dependent г) Win32_LogicalDiskToPartition => Antecedent, Dependent Если все-же нужно получить все DeviceID, вот пример для IDE: Win32_IDEControllerDevice => Dependent 8. Тонкий момент. RAID-конфигурации с несколькими дисками хоть и не часто, но встречаются. А RAID не всегда может выдавать серийники и другие параметры своих нескольких дисков... Редко, но возможна ситуация, когда на некоторых современных ПК IDE вообще не используется, а вмеcто этого системный диск подключен по интерфейсу USB. Внешний HDD в этом случае может подключаться через I/O USB (не следует отождествлять понятия "разъем" и "гнездо расширения"). 9. Решение от gimntut. Подтверждаю: под Windows XP ничего не возвращает. Решения для Windows XP пока нет. В ветви MountPoints2 прописывается информация о бывших и существующих локальных, сетевых и съемных дисках, а именно - точки монтирования, причем диски обозначаются как буквами, так и идентификаторами. При открытии диска ОС смотрит, какой программой его открыть (параметр BaseClass со значением по умолчанию: Drive). Ветка может использоваться и вредоносным ПО. Не всегда существует под-ветка CPC. Помимо MountPoints2, информация о накопителях прописывается и в другие ветви реестра.
4
|
||||||||
| 26.12.2012, 13:45 | |
|
Помогаю со студенческими работами здесь
11
Как установить Debian на съемный жесткий диск? Съемный жесткий диск TS500GSJ25M TRANSCEND не видит компьютер,как узнать сгорел ли он?! Вынуть данные (жесткий съемный диск или CD диск)
Съемный жесткий диск Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во
всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
|