Что нового

Создать массив из объектов Win32_DiskDrive или как-то ещё упорядочить данные

DyadyaGenya

Знающий
Сообщения
300
Репутация
10
Добрый день. Пробую получать сведения о винчестере. Один из кусков инфы получаю вот так:
Код:
Local $objService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
Local $objItems = $objService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", 0x30)
  If Not IsObj($objItems) Then ConsoleWrite('sss') Return
For $Disk In $objItems
  Local $Index = $Disk.Index
;ConsoleWrite(@CR & 'Физический индекс диска  ' & $Index &@CR)
  ConsoleWrite(@CR & 'Физический номер диска  ' & $Disk.Index &@CR)
  ConsoleWrite('Название компьютера, (CIM_LogicalDevice):  ' & $Disk.SystemName &@CR)
  ConsoleWrite('Текущий статус объекта, (CIM_ManagedSystemElement):  ' & $Disk.Status &@CR)
  ConsoleWrite('Идентификация диска:  ' & $Disk.Signature &@CR)
  ConsoleWrite('айди  ' & $Disk.PNPDeviceID &@CR)
  ConsoleWrite('Уникальный идентификатор устройства (CIM_LogicalDevice):  ' & $Disk.DeviceID &@CR)
  ConsoleWrite('Метка, определяющая объект (устройство), (CIM_ManagedSystemElement):  ' & $Disk.Name &@CR)
  ConsoleWrite('Наименование изготовителя диска:  ' & $Disk.Manufacturer &@CR)
  ConsoleWrite('Номер модели производителя:  ' & $Disk.Model &@CR)
  ConsoleWrite('Описание объекта, (CIM_ManagedSystemElement):  ' & $Disk.Description &@CR)
  ConsoleWrite('серийник  ' & $Disk.SerialNumber &@CR)
  ConsoleWrite('Размер диска:  ' & $Disk.Size &@CR)
  ConsoleWrite('Количество байт в каждом секторе для заданного диска:  ' & $Disk.BytesPerSector &@CR)
  ConsoleWrite('Максимальный размер блока в байтах, (CIM_MediaAccessDevice):  ' & $Disk.MaxBlockSize &@CR)
  ConsoleWrite('Минимальный размер блока в байтах, (CIM_MediaAccessDevice):  ' & $Disk.MinBlockSize &@CR)
  ConsoleWrite('Максимальный размер носителя в килобайтах, (CIM_MediaAccessDevice):  ' & $Disk.MaxMediaSize &@CR)
  ConsoleWrite('нуждается в очистке(True) или нет:  ' & $Disk.NeedsCleaning &@CR)
  ConsoleWrite('Тип носителей используемых данным устройством:  ' & $Disk.MediaType &@CR)
  ConsoleWrite('Тип интерфейса  ' & $Disk.InterfaceType &@CR)
  ConsoleWrite('Номер SCSI шины:  ' & $Disk.SCSIBus &@CR)
  ConsoleWrite('SCSI логический номер устройства (LUN):  ' & $Disk.SCSILogicalUnit &@CR)
  ConsoleWrite('SCSI номер порта:  ' & $Disk.SCSIPort &@CR)
  ConsoleWrite('SCSI идентификатор:  ' & $Disk.SCSITargetId &@CR)
  ConsoleWrite('Краткое описание объекта, (CIM_ManagedSystemElement):  ' & $Disk.Caption &@CR)
  ConsoleWrite('Алгоритм или инструмент, используемый в устройстве для поддержки сжатия, информация о жестком диске:  ' & $Disk.CompressionMethod &@CR)
  ConsoleWrite('Имя класса-создателя, (CIM_LogicalDevice):  ' & $Disk.CreationClassName &@CR)
  ConsoleWrite('Количество разделов на текущем диске, которые распознаются операционной системой:  ' & $Disk.Partitions &@CR)
  ConsoleWrite('Свойство содержит массив, хранящий информацию о специфических элементах питания устройства, (CIM_LogicalDevice):  ' & $Disk.PowerManagementCapabilities &@CR)
  ConsoleWrite('логическое устройство поддерживает управление питанием, (CIM_LogicalDevice): ' & $Disk.PowerManagementSupported &@CR)
  ConsoleWrite('Свойство содержит общее количество цилиндров на диске: ' & $Disk.TotalCylinders &@CR)
  ConsoleWrite('Общее количество головок на диске:  ' & $Disk.TotalHeads &@CR)
  ConsoleWrite('Общее количество секторов на диске:  ' & $Disk.TotalSectors &@CR)
  ConsoleWrite('Общее количество дорожек на диске:  ' & $Disk.TotalTracks &@CR)
  ConsoleWrite('Количество дорожек в каждом цилиндре:  ' & $Disk.TracksPerCylinder &@CR)
Next
Естественно в консоль выводиться упорядочено, сперва инфа по одному диску, потом по другому и дальше. Не могу придумать как это сохранить в переменные или массив, чтоб легко можно было достать инфу указав Индекс диска ($Index). Естественно - это не весь список. Весь список характеристик я не знаю, и это одна из причин, почему хочу получить массив.
Пробовал так:
Код:
Local $objService[0]
$objService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
Local $objItems[0][0]
$objItems = $objService.ExecQuery("SELECT * FROM Win32_DiskDrive", "WQL", 0x30)
For $i = 1 To $objItems[0][0]
  Local $tmp = $objItems[$i][1]
   ConsoleWrite($tmp & @CRLF)
   _ArrayAdd($objItems, objService[$i][1])
Next

И вот такую вставку пробовал сделать:
Код:
Local $Index = $Disk.Index
  For $z = 0 To $Index
     $tmp = $Disk[$z][1]
     _ArrayAdd($Index, $Disk[$z][1])
     Next
     _ArrayDisplay($Index)

Но что-то ничего не получается.
 
Последнее редактирование:

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$objService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
$objItems = $objService.ExecQuery("SELECT * FROM Win32_DiskDrive where index=0", "WQL", 0x30)
For $zzz In  $objItems
	ConsoleWrite($zzz.BytesPerSector&@lf)
	ConsoleWrite($zzz.Capabilities&@lf)
	ConsoleWrite($zzz.Caption&@lf)
	ConsoleWrite($zzz.ConfigManagerErrorCode&@lf)
	ConsoleWrite($zzz.ConfigManagerUserConfig&@lf)
	ConsoleWrite($zzz.CreationClassName&@lf)
	ConsoleWrite($zzz.Description&@lf)
	ConsoleWrite($zzz.DeviceID&@lf)
	ConsoleWrite($zzz.Index&@lf)
	ConsoleWrite($zzz.InterfaceType&@lf)
	ConsoleWrite($zzz.Manufacturer&@lf)
	ConsoleWrite($zzz.MediaLoaded&@lf)
	ConsoleWrite($zzz.MediaType&@lf)
	ConsoleWrite($zzz.Model&@lf)
	ConsoleWrite($zzz.Name&@lf)
	ConsoleWrite($zzz.Partitions&@lf)
	ConsoleWrite($zzz.PNPDeviceID&@lf)
	ConsoleWrite($zzz.SCSIBus&@lf)
	ConsoleWrite($zzz.SCSILogicalUnit&@lf)
	ConsoleWrite($zzz.SCSIPort&@lf)
	ConsoleWrite($zzz.SCSITargetId&@lf)
	ConsoleWrite($zzz.SectorsPerTrack&@lf)
	ConsoleWrite($zzz.Signature&@lf)
	ConsoleWrite($zzz.Size&@lf)
	ConsoleWrite($zzz.Status&@lf)
	ConsoleWrite($zzz.SystemCreationClassName&@lf)
	ConsoleWrite($zzz.SystemName&@lf)
	ConsoleWrite($zzz.TotalCylinders&@lf)
	ConsoleWrite($zzz.TotalHeads&@lf)
	ConsoleWrite($zzz.TotalSectors&@lf)
	ConsoleWrite($zzz.TotalTracks&@lf)
	ConsoleWrite($zzz.TracksPerCylinder&@lf)
Next[\code]
 
Автор
D

DyadyaGenya

Знающий
Сообщения
300
Репутация
10
Так я ж это и делаю, код скрыт под спойлером. По сути у меня больше данных, и они подписаны, но не могу их разобрать по дискам. Тоесть не понимаю, как вызвать (выбрать в нужный момент) свойство №п у диска №м
Соврал. У меня не так, как у вас. Не заметил
Код:
FROM Win32_DiskDrive where index=0

Но все равно не понимаю. И интересно получить все данные, а не жестко прописанные в списке
 
Последнее редактирование:

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Других данных там нет, они не плесень сами не заводятся. Открой msdn, что за гадания.
 
Автор
D

DyadyaGenya

Знающий
Сообщения
300
Репутация
10
Других данных там нет, они не плесень сами не заводятся. Открой msdn, что за гадания
Я собрал больше ))) 47 против 31. И это не все
Код:
ConsoleWrite(@CR & 'Физический номер диска  ' & $Disk.Index &@CR)
  ConsoleWrite('Название компьютера, (CIM_LogicalDevice):  ' & $Disk.SystemName &@CR)
  ConsoleWrite('Текущий статус объекта, (CIM_ManagedSystemElement):  ' & $Disk.Status &@CR)
  ConsoleWrite('Идентификация диска:  ' & $Disk.Signature &@CR)
  ConsoleWrite('айди:  ' & $Disk.PNPDeviceID &@CR)
  ConsoleWrite('Уникальный идентификатор устройства (CIM_LogicalDevice):  ' & $Disk.DeviceID &@CR)
  ConsoleWrite('Метка, определяющая объект (устройство), (CIM_ManagedSystemElement):  ' & $Disk.Name &@CR)
  ConsoleWrite('Наименование изготовителя диска:  ' & $Disk.Manufacturer &@CR)
  ConsoleWrite('Номер модели производителя:  ' & $Disk.Model &@CR)
  ConsoleWrite('Краткое описание диска:  ' & $Disk.Caption &@CR)
  ConsoleWrite('Описание объекта, (CIM_ManagedSystemElement):  ' & $Disk.Description &@CR)
  ConsoleWrite('серийник:  ' & $Disk.SerialNumber &@CR)
  ConsoleWrite('Размер диска:  ' & $Disk.Size &@CR)
  ConsoleWrite('Количество байт в каждом секторе для заданного диска:  ' & $Disk.BytesPerSector &@CR)
  ConsoleWrite('Максимальный размер блока в байтах, (CIM_MediaAccessDevice):  ' & $Disk.MaxBlockSize &@CR)
  ConsoleWrite('Минимальный размер блока в байтах, (CIM_MediaAccessDevice):  ' & $Disk.MinBlockSize &@CR)
  ConsoleWrite('Максимальный размер носителя в килобайтах, (CIM_MediaAccessDevice):  ' & $Disk.MaxMediaSize &@CR)
  ConsoleWrite('нуждается в очистке(True) или нет:  ' & $Disk.NeedsCleaning &@CR)
  ConsoleWrite('Тип носителей используемых данным устройством:  ' & $Disk.MediaType &@CR)
  ConsoleWrite('Тип интерфейса:  ' & $Disk.InterfaceType &@CR)
  ConsoleWrite('Номер SCSI шины:  ' & $Disk.SCSIBus &@CR)
  ConsoleWrite('SCSI логический номер устройства (LUN):  ' & $Disk.SCSILogicalUnit &@CR)
  ConsoleWrite('SCSI номер порта:  ' & $Disk.SCSIPort &@CR)
  ConsoleWrite('SCSI идентификатор:  ' & $Disk.SCSITargetId &@CR)
  ConsoleWrite('Краткое описание объекта, (CIM_ManagedSystemElement):  ' & $Disk.Caption &@CR)
  ConsoleWrite('Алгоритм или инструмент, используемый в устройстве для поддержки сжатия, информация о жестком диске:  ' & $Disk.CompressionMethod &@CR)
  ConsoleWrite('Имя класса-создателя, (CIM_LogicalDevice):  ' & $Disk.CreationClassName &@CR)
  ConsoleWrite('Количество разделов на текущем диске, которые распознаются операционной системой:  ' & $Disk.Partitions &@CR)
  ConsoleWrite('Свойство содержит массив, хранящий информацию о специфических элементах питания устройства, (CIM_LogicalDevice):  ' & $Disk.PowerManagementCapabilities &@CR)
  ConsoleWrite('логическое устройство поддерживает управление питанием, (CIM_LogicalDevice): ' & $Disk.PowerManagementSupported &@CR)
  ConsoleWrite('Свойство содержит общее количество цилиндров на диске: ' & $Disk.TotalCylinders &@CR)
  ConsoleWrite('Общее количество головок на диске:  ' & $Disk.TotalHeads &@CR)
  ConsoleWrite('Общее количество секторов на диске:  ' & $Disk.TotalSectors &@CR)
  ConsoleWrite('Общее количество дорожек на диске:  ' & $Disk.TotalTracks &@CR)
  ConsoleWrite('Availability:  ' & $Disk.Availability &@CR)
  ConsoleWrite('Capabilities:  ' & $Disk.Capabilities &@CR)
  ConsoleWrite('CapabilityDescriptions:  ' & $Disk.CapabilityDescriptions &@CR)
  ConsoleWrite('InstallDate:  ' & $Disk.InstallDate &@CR)
  ConsoleWrite('LastErrorCode:  ' & $Disk.LastErrorCode &@CR)
  ConsoleWrite('StatusInfo:  ' & $Disk.StatusInfo &@CR)
  ConsoleWrite('ConfigManagerErrorCode:  ' & $Disk.ConfigManagerErrorCode &@CR)
  ConsoleWrite('ErrorCleared:  ' & $Disk.ErrorCleared &@CR)
  ConsoleWrite('ErrorDescription:  ' & $Disk.ErrorDescription &@CR)
  ConsoleWrite('ConfigManagerErrorCode:  ' & $Disk.ConfigManagerErrorCode &@CR)
  ConsoleWrite('ConfigManagerUserConfig:  ' & $Disk.ConfigManagerUserConfig &@CR)
  ConsoleWrite('MediaLoaded:  ' & $Disk.MediaLoaded &@CR)
  ConsoleWrite('NumberOfMediaSupported:  ' & $Disk.NumberOfMediaSupported &@CR)
В любом случае, как получить значение напр, $index[0][3]?
 
Последнее редактирование:

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
как вариант. а там можно корректировать под задачи
Код:
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
#include <WinAPIFiles.au3>

; Пример 1 -------------------------------------------------------------------------------------
Local $DDInf = _GetDriveInf(); получаем массив, в котором каждый индекс содержит объект данных диска. индекс массива равен индексу диска в системе
If Not @error Then
    ConsoleWrite('Физические накопители : ' & UBound($DDInf) & @LF)
    Local $InfD
    For $i = 0 To UBound($DDInf) - 1
        $InfD = _InfDisplay($DDInf[$i])
        _ArrayDisplay($InfD, 'Disk Index : ' & $i)
    Next
EndIf


;Пример 2------------------------------------------------------------------------------------------

Global $IndexD = -1, $DDInf
$Form1 = GUICreate('Disk', 615, 437, -1, -1)
Local $Edit1 = GUICtrlCreateEdit('', 24, 16, 457, 385); вывод информации при подключении устройства.

GUISetState()
GUIRegisterMsg($WM_DEVICECHANGE, 'WM_DEVICECHANGE'); регистрируем подключение нового устройства

While 1
    If $IndexD <> -1 Then
        $DDInf = _GetDriveInfIndex($IndexD)
        $IndexD = -1
        GUICtrlSetData($Edit1, _ArrayToString($DDInf))
    EndIf
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

Func WM_DEVICECHANGE($hWnd, $Msg, $wParam, $lParam)
    Switch $wParam
        Case 0x8000 ; обнаружение устройства
            Local $DEV_BROADCAST_VOLUME = DllStructCreate('int dbcvsize;int dbcvdevicetype;int dbcvreserved;int dbcvunitmask;' & _
                    'ushort dbcvflags', $lParam)
            Local $iDriveType = DllStructGetData($DEV_BROADCAST_VOLUME, 'dbcvdevicetype')
            Local $iMask = DllStructGetData($DEV_BROADCAST_VOLUME, "dbcvunitmask")
            $iMask = Log($iMask) / Log(2)
            Local $iDrive = Chr(65 + $iMask) & ':'
            Local $aDRN = _WinAPI_GetDriveNumber($iDrive)
            If IsArray($aDRN) Then $IndexD = $aDRN[1]
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_DEVICECHANGE

Func _GetDriveInfIndex($Index = 0)
    Local $ObjService = ObjGet('winmgmts:\\' & @ComputerName & '\root\CIMV2')
    Local $ObjItems = $ObjService.ExecQuery('SELECT * FROM Win32_DiskDrive where index=' & String($Index), 'WQL', 0x30)
    If Not IsObj($ObjItems) Then Return SetError(1)
    Local $aDisk
    For $ObjItem In $ObjItems
        $aDisk = _InfDisplay($ObjItem)
        Return $aDisk
    Next
EndFunc   ;==>_GetDriveInfIndex

Func _GetDriveInf()
    Local $ObjService = ObjGet('winmgmts:\\' & @ComputerName & '\root\CIMV2')
    Local $ObjItems = $ObjService.ExecQuery('SELECT * FROM Win32_DiskDrive', 'WQL', 0x30)
    If Not IsObj($ObjItems) Then Return SetError(1)
    Local $aDisk[0]; массив объектов
    For $ObjItem In $ObjItems
        _ArrayAdd($aDisk, $ObjItem)
    Next
    Return $aDisk
EndFunc   ;==>_GetDriveInf

Func _InfDisplay($Index)
    If Not IsObj($Index) Then Return SetError(1)
    Local $ArrayInf[0][2]
    _ArrayAdd($ArrayInf, 'Физический номер диска  ' & '|' & $Index.Index)
    _ArrayAdd($ArrayInf, 'Название компьютера, (CIM_LogicalDevice):  ' & '|' & $Index.SystemName)
    _ArrayAdd($ArrayInf, 'Текущий статус объекта, (CIM_ManagedSystemElement):  ' & '|' & $Index.Status)
    _ArrayAdd($ArrayInf, 'Идентификация диска:  ' & '|' & $Index.Signature)
    _ArrayAdd($ArrayInf, 'айди:  ' & '|' & $Index.PNPDeviceID)
    _ArrayAdd($ArrayInf, 'Уникальный идентификатор устройства (CIM_LogicalDevice):  ' & '|' & $Index.DeviceID)
    _ArrayAdd($ArrayInf, 'Метка, определяющая объект (устройство), (CIM_ManagedSystemElement):  ' & '|' & $Index.Name)
    _ArrayAdd($ArrayInf, 'Наименование изготовителя диска:  ' & '|' & $Index.Manufacturer)
    _ArrayAdd($ArrayInf, 'Номер модели производителя:  ' & '|' & $Index.Model)
    _ArrayAdd($ArrayInf, 'Краткое описание диска:  ' & '|' & $Index.Caption)
    _ArrayAdd($ArrayInf, 'Описание объекта, (CIM_ManagedSystemElement):  ' & '|' & $Index.Description)
    _ArrayAdd($ArrayInf, 'серийник:  ' & '|' & $Index.SerialNumber)
    _ArrayAdd($ArrayInf, 'Размер диска:  ' & '|' & $Index.Size)
    _ArrayAdd($ArrayInf, 'Количество байт в каждом секторе для заданного диска:  ' & '|' & $Index.BytesPerSector)
    _ArrayAdd($ArrayInf, 'Максимальный размер блока в байтах, (CIM_MediaAccessDevice):  ' & '|' & $Index.MaxBlockSize)
    _ArrayAdd($ArrayInf, 'Минимальный размер блока в байтах, (CIM_MediaAccessDevice):  ' & '|' & $Index.MinBlockSize)
    _ArrayAdd($ArrayInf, 'Максимальный размер носителя в килобайтах, (CIM_MediaAccessDevice):  ' & '|' & $Index.MaxMediaSize)
    _ArrayAdd($ArrayInf, 'нуждается в очистке(True) или нет:  ' & '|' & $Index.NeedsCleaning)
    _ArrayAdd($ArrayInf, 'Тип носителей используемых данным устройством:  ' & '|' & $Index.MediaType)
    _ArrayAdd($ArrayInf, 'Тип интерфейса:  ' & '|' & $Index.InterfaceType)
    _ArrayAdd($ArrayInf, 'Номер SCSI шины:  ' & '|' & $Index.SCSIBus)
    _ArrayAdd($ArrayInf, 'SCSI логический номер устройства (LUN):  ' & '|' & $Index.SCSILogicalUnit)
    _ArrayAdd($ArrayInf, 'SCSI номер порта:  ' & '|' & $Index.SCSIPort)
    _ArrayAdd($ArrayInf, 'SCSI идентификатор:  ' & '|' & $Index.SCSITargetId)
    _ArrayAdd($ArrayInf, 'Краткое описание объекта, (CIM_ManagedSystemElement):  ' & '|' & $Index.Caption)
    _ArrayAdd($ArrayInf, 'Алгоритм или инструмент, используемый в устройстве для поддержки сжатия, информация о жестком диске:  ' & '|' & $Index.CompressionMethod)
    _ArrayAdd($ArrayInf, 'Имя класса-создателя, (CIM_LogicalDevice):  ' & '|' & $Index.CreationClassName)
    _ArrayAdd($ArrayInf, 'Количество разделов на текущем диске, которые распознаются операционной системой:  ' & '|' & $Index.Partitions)
    _ArrayAdd($ArrayInf, 'Свойство содержит массив, хранящий информацию о специфических элементах питания устройства, (CIM_LogicalDevice):  ' & '|' & $Index.PowerManagementCapabilities)
    _ArrayAdd($ArrayInf, 'логическое устройство поддерживает управление питанием, (CIM_LogicalDevice): ' & '|' & $Index.PowerManagementSupported)
    _ArrayAdd($ArrayInf, 'Свойство содержит общее количество цилиндров на диске: ' & '|' & $Index.TotalCylinders)
    _ArrayAdd($ArrayInf, 'Общее количество головок на диске:  ' & '|' & $Index.TotalHeads)
    _ArrayAdd($ArrayInf, 'Общее количество секторов на диске:  ' & '|' & $Index.TotalSectors)
    _ArrayAdd($ArrayInf, 'Общее количество дорожек на диске:  ' & '|' & $Index.TotalTracks)
    _ArrayAdd($ArrayInf, 'Availability:  ' & '|' & $Index.Availability)
    _ArrayAdd($ArrayInf, 'Capabilities:  ' & '|' & $Index.Capabilities)
    _ArrayAdd($ArrayInf, 'CapabilityDescriptions:  ' & '|' & $Index.CapabilityDescriptions)
    _ArrayAdd($ArrayInf, 'InstallDate:  ' & '|' & $Index.InstallDate)
    _ArrayAdd($ArrayInf, 'LastErrorCode:  ' & '|' & $Index.LastErrorCode)
    _ArrayAdd($ArrayInf, 'StatusInfo:  ' & '|' & $Index.StatusInfo)
    _ArrayAdd($ArrayInf, 'ConfigManagerErrorCode:  ' & '|' & $Index.ConfigManagerErrorCode)
    _ArrayAdd($ArrayInf, 'ErrorCleared:  ' & '|' & $Index.ErrorCleared)
    _ArrayAdd($ArrayInf, 'ErrorDescription:  ' & '|' & $Index.ErrorDescription)
    _ArrayAdd($ArrayInf, 'ConfigManagerErrorCode:  ' & '|' & $Index.ConfigManagerErrorCode)
    _ArrayAdd($ArrayInf, 'ConfigManagerUserConfig:  ' & '|' & $Index.ConfigManagerUserConfig)
    _ArrayAdd($ArrayInf, 'MediaLoaded:  ' & '|' & $Index.MediaLoaded)
    _ArrayAdd($ArrayInf, 'NumberOfMediaSupported:  ' & '|' & $Index.NumberOfMediaSupported)
    Return $ArrayInf
EndFunc   ;==>_InfDisplay
 
Последнее редактирование:
Автор
D

DyadyaGenya

Знающий
Сообщения
300
Репутация
10
как вариант. а там можно корректировать под задачи
Спасибо, почти то, что хотел. Ну или не совсем разобрался... Пока индексы по порядку с индексами дисков не совпадают, но поколупаюсь. И не совсем понял второй вариант, но работает красиво. Моментально на флэшку реагирует. Я пока о таком даже не думал. Было в далеких планах )))
Сообщение автоматически объединено:
 
Последнее редактирование:
Верх