Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

System диски

280
25 октября 2006 года
ВуД™
326 / / 04.01.2006
Как узнать сколько локальный дисков на компьютере и их буквы? :confused:
И узнать какой буквой обозначен диск cd-roma? :confused:
405
25 октября 2006 года
Dmitrii
554 / / 16.12.2004
Например, так:
Код:
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colDisks = objWMI.ExecQuery("Select * from Win32_LogicalDisk")
sTemp = "Количество дисков: " & colDisks.Count & vbCr & vbCr
For Each curDisk in colDisks
    diskType = curDisk.DriveType
    diskName = curDisk.DeviceID
    Select Case diskType
        Case 1
            sTemp = sTemp & diskName & vbTab & "Не обнаружен корневой каталог. Тип накопителя не определён." & vbCr
        Case 2
            If diskName = "A:" Or diskName = "B:" Then
                sTemp = sTemp & diskName & vbTab & "Накопитель на гибких дисках." & vbCr
            Else
                sTemp = sTemp & diskName & vbTab & "Мобильный накопитель (Zip, USB и т.д.)." & vbCr
            End If
        Case 3
            sTemp = sTemp & diskName & vbTab & "Жёсткий диск." & vbCr
        Case 4
            sTemp = sTemp & diskName & vbTab & "Сетевой диск." & vbCr
        Case 5
            sTemp = sTemp & diskName & vbTab & "Накопитель на оптических дисках." & vbCr
        Case 6
            sTemp = sTemp & diskName & vbTab & "RAM-накопитель." & vbCr
        Case Else
            sTemp = sTemp & diskName & vbTab & "Тип накопителя не определён." & vbCr
    End Select
Next
MsgBox sTemp
257
25 октября 2006 года
kosfiz
1.6K / / 18.09.2005
попробуй использовать API функции GetLogicalDriveStrings и GetDriveType. вот примерчик.
280
26 октября 2006 года
ВуД™
326 / / 04.01.2006
Большое спасибо ...:)
280
01 ноября 2006 года
ВуД™
326 / / 04.01.2006
Как узнать отдельно количество дисков?
405
01 ноября 2006 года
Dmitrii
554 / / 16.12.2004
[QUOTE=ВуД™]Как узнать отдельно количество дисков?[/QUOTE]
Чем не нравится уже предложенный вариант?
 
Код:
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colDisks = objWMI.ExecQuery("Select * from Win32_LogicalDisk")
sTemp = "Количество дисков: " & colDisks.Count
280
01 ноября 2006 года
ВуД™
326 / / 04.01.2006
[QUOTE=Dmitrii]Чем не нравится уже предложенный вариант?
 
Код:
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Set colDisks = objWMI.ExecQuery("Select * from Win32_LogicalDisk")
sTemp = "Количество дисков: " & colDisks.Count
[/QUOTE]

мне надо одельно к примеру: количество локальных дисков и т.д :)
257
01 ноября 2006 года
kosfiz
1.6K / / 18.09.2005
ты мой примерчик снова посмотри и там где строка:
 
Код:
If GetDriveType(drive) = 5

вместо 5 попробуй следующие константы:
DRIVE_FIXED = 3 - жесткий диск
DRIVE_RAMDISK = 6 - виртуальный диск
DRIVE_REMOTE = 4 - сетевой диск
DRIVE_REMOVABLE = 2 - гибкий диск
и считай сколько каких есть это уже просто.
405
02 ноября 2006 года
Dmitrii
554 / / 16.12.2004
[QUOTE=ВуД™]мне надо одельно к примеру: количество локальных дисков и т.д[/QUOTE]
В принципе, kosfiz уже дал совет - вести счётчики по каждому типу обнаруженных дисков.
Могу добавить лишь следующее:
1. Инструментарий WMI позволяет посчитать количество дисков определённого типа без перебора всей коллекции. Вот пример:
 
Код:
curType = 4 'сетевые диски
Set colDisks = objWMI.ExecQuery("Select * from Win32_LogicalDisk Where DriveType=" & curType)
MsgBox "Кол-во сетевых дисков: " & colDisks.Count

2. В инструментарии WMI есть отдельные классы, предназначенные для работы с конкретным типом физических устойств, например:
- Win32_FloppyDrive
- Win32_DiskDrive (для НЖМД)
- Win32_CDROMDrive
 
Код:
Set colDisks = objWMI.ExecQuery("Select * from Win32_CDROMDrive")
MsgBox "Кол-во приводов для компакт-дисков: " & colDisks.Count
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог