Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   определение названия и размера всех HDD (http://forum.oszone.net/showthread.php?t=177248)

Talany 03-06-2010 10:35 1426453

определение названия и размера всех HDD
 
Здравствуйте!
Подскажите пожалуйста такую проблему
Код:

$oService  = ObjGet('winmgmts:\\.\root\cimv2')
If IsObj($oService) Then
        $oItems  = $oService.ExecQuery('SELECT Model, Size FROM Win32_DiskDrive')
        If IsObj($oItems) Then
        For $Property In $oItems
                        $1 =($Property.Model)
                        $2 =($Property.Size)
            MsgBox (4096, $1, $2)
        Next
    EndIf
EndIf

Мне нужно в конечном варианте массивы или переменные содержащие размер и названия HDD отдельно

zonderz 03-06-2010 15:12 1426638

Цитата:

Цитата Talany
или переменные содержащие размер и названия HDD отдельно »

ну, так и в чем проблема, объявите сколько угодно переменных (на весь алфавит) да и присваивайте им поочередно свойства диска, или массив...

FlatX007 03-06-2010 15:39 1426660

Код:

Dim $sDrive[26] = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'V', 'X', 'Y', 'Z']

ProgressOn("Drive Size", "", "", @DesktopWidth - 350, @DesktopHeight - @DesktopHeight + 50, 16 + 2)

While 1
    For $i = 0 To UBound($sDrive) - 1
        If DriveSpaceTotal($sDrive[$i] & ':\') = 0 Then
            ContinueLoop
        Else

            Sleep(3000)
        EndIf
        $iSize = DriveSpaceTotal ($sDrive[$i] & ':\')
        $iOst = DriveSpaceFree ($sDrive[$i] & ':\')
        ProgressSet(100 / $iSize * ($iSize - $iOst), ' Заполнено : ' & _BytesToFullSize($iSize * 1024 * 1024 - $iOst * 1024 * 1024) & "  Всего : " &  _BytesToFullSize($iSize * 1024 * 1024), 'Диск : " ' & $sDrive[$i] & ':\ "' & ' Осталось : ' & _BytesToFullSize($iOst * 1024 * 1024))
    Next

WEnd


ProgressOff()

Func _BytesToFullSize($iByteSize, $iRound=2, $sRetFormat=-1)
    Local $asBytes[9] = [8, 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']
    Local $iBytes_Val = 2 ^ 10

    If $iByteSize < $iBytes_Val Then Return $iByteSize & ' Bytes'

    If IsString($sRetFormat) Then
        For
$i = 1 To 8
            If $sRetFormat = $asBytes[$i] Then Return Round($iByteSize / $iBytes_Val ^ $i, $iRound) & ' ' & $asBytes[$i]
        Next
    Else
        For
$i = 8 To 1 Step -1
            If $iByteSize >= $iBytes_Val ^ $i Then Return Round($iByteSize / $iBytes_Val ^ $i, $iRound) & ' ' & $asBytes[$i]
        Next
    EndIf
EndFunc



Время: 04:42.

Время: 04:42.
© OSzone.net 2001-