dialmak
BANNED | Ðåäàêòèðîâàòü | Ïðîôèëü | Ñîîáùåíèå | Öèòèðîâàòü | Ñîîáùèòü ìîäåðàòîðó #region -- Drives Dim $Drives _ComputerGetDrives($Drives) ;Defaults to "FIXED" If @error Then $error = @error $extended = @extended Switch $extended Case 1 _ErrorMsg("DriveGetDrive Error!") Case 2 _ErrorMsg("DriveGetFileSystem Error!") Case 3 _ErrorMsg("DriveGetLabel Error!") Case 4 _ErrorMsg("DriveGetSerial Error!") Case 5 _ErrorMsg("DriveSpaceFree Error!") Case 6 _ErrorMsg("DriveSpaceTotal Error!") EndSwitch EndIf For $i = 1 To $Drives[0][0] Step 1 MsgBox(0, "Drive: " & $Drives[$i][0], "FileSystem: " & $Drives[$i][1] & @CRLF & "Label: " & $Drives[$i][2] & @CRLF & "Serial #: " & $Drives[$i][3] & @CRLF & "Free Space: " & Round($Drives[$i][4] / 1024, 2) & "GB" & @CRLF & "Total Space: " & Round($Drives[$i][5] / 1024, 2) & "GB") Next #endregion Drives ;=============================================================================== ; Description: Returns the drive information based on $sDriveType in a two ; dimensional array. First dimension is the index for each set ; of drive information. ; Parameter(s): $aDriveInfo - By Reference - Drive information in an array. ; $sDriveType - Type of drive to return the information on. ; Options: "ALL", "CDROM", "REMOVABLE", "FIXED", ; "NETWORK", "RAMDISK", or "UNKNOWN" ; Defaults to "FIXED" drives. ; Requirement(s): None ; Return Value(s): On Success - Returns array of drive information. ; $aDriveInfo[0][0] = Number of Drives ; The second dimension is as follows: ($i starts at 1) ; [$i][0] - Drive Letter (ex. C:\) ; [$i][1] - File System ; [$i][2] - Label ; [$i][3] - Serial Number ; [$i][4] - Free Space ; [$i][5] - Total Space ; On Failure - Return 0 - @error - 1 ; @extended: 1 = DriveGetDrive Error ; 2 = DriveGetFileSystem Error ; 3 = DriveGetLabel Error ; 4 = DriveGetSerial Error ; 5 = DriveSpaceFree Error ; 6 = DriveSpaceTotal Error ;=============================================================================== Func _ComputerGetDrives(ByRef $aDriveInfo, $sDriveType = "FIXED") Local $drive $drive = DriveGetDrive($sDriveType) If NOT @error Then Dim $aDriveInfo[UBound($drive)][6] $aDriveInfo[0][0] = $drive[0] For $i = 1 To $aDriveInfo[0][0] Step 1 $aDriveInfo[$i][0] = StringUpper($drive[$i] & "\") $aDriveInfo[$i][1] = DriveGetFileSystem($drive[$i]) If @error Then SetError(1, 2, 0) $aDriveInfo[$i][2] = DriveGetLabel($drive[$i]) If @error Then SetError(1, 3, 0) $aDriveInfo[$i][3] = DriveGetSerial($drive[$i]) If @error Then SetError(1, 4, 0) $aDriveInfo[$i][4] = DriveSpaceFree($drive[$i]) If @error Then SetError(1, 5, 0) $aDriveInfo[$i][5] = DriveSpaceTotal($drive[$i]) If @error Then SetError(1, 6, 0) Next Else SetError(1, 1, 0) EndIf EndFunc ;_ComputerGetDrives #region ---- Functions ErrorMsg Func _ErrorMsg($message, $time = 0) MsgBox(48 + 262144, "Error!", $message, $time) EndFunc #endregion Functions ErrorMsg | Âñåãî çàïèñåé: 14007 | Çàðåãèñòð. 27-04-2013 | Îòïðàâëåíî: 16:56 11-04-2013 | Èñïðàâëåíî: dialmak, 16:57 11-04-2013 |
|