找回密码
 加入
搜索
查看: 1884|回复: 3

[系统综合] 怎么获得C盘的大小?

[复制链接]
发表于 2010-3-3 23:07:46 | 显示全部楼层 |阅读模式
我想知道怎么获得C盘的大小?
发表于 2010-3-3 23:16:02 | 显示全部楼层
GetPartionMsg("", 1)         ;GetPartionMsg 的第一个参数可以是 USB、IDE 等;如果不带任何参数,则是检测所有磁盘分区
                                                 ;第二个参数可以是 1、0,1 表示 TRUE,0 表示 FALSE;如果第一个参数为空,则第二个必需为 1

Func GetPartionMsg($Interface, $b)
         $objWMIService = ObjGet("winmgmts:\.\root\cimv2")
         $colItems = $objWMIService.ExecQuery ("Select * from Win32_LogicalDiskToPartition")
         $DiskInfo = ""
         $DiskInfoCombo = ""
         For $objItem In $colItems
                 $DiskFH = StringLeft(StringRight($objItem.Dependent, 3), 2)
                 $PartNum = QueryDiskNum($DiskFH)
                 $PartMsg = QueryPartitionVolume($DiskFH)
                 If $Interface <> "" Then
                         If $b = 1 Then
                                 If StringMid($PartNum, 2, 3) = $Interface Then
                                         $DiskInfo = $DiskInfo & $PartNum & $DiskFH & $PartMsg & @CRLF
                                 EndIf
                         ElseIf $b = 0 Then
                                 If StringMid($PartNum, 2, 3) <> $Interface Then
                                         $DiskInfo = $DiskInfo & $PartNum & $DiskFH & $PartMsg & @CRLF
                                 EndIf
                         EndIf
                 Else
                         $DiskInfo = $DiskInfo & $PartNum & $DiskFH & $PartMsg & @CRLF
                 EndIf
         Next
         MsgBox(64, "磁盘信息", $DiskInfo)
EndFunc   ;==>GetPartionMsg

Func QueryDiskInterface($n)
         $objWMIService = ObjGet("winmgmts:\.\root\cimv2")
         $colItems = $objWMIService.ExecQuery ("Select * from Win32_DiskDrive Where Index=" & $n)
         For $objItem In $colItems
                 Return $objItem.InterfaceType
         Next
EndFunc   ;==>QueryDiskInterface

Func QueryPartitionVolume($v)
         $objWMIService = ObjGet("winmgmts:\.\root\cimv2")
         $colItems = $objWMIService.ExecQuery ("Select * from Win32_LogicalDisk Where DeviceID='" & $v & "'")
         For $objItem In $colItems
                 Return $objItem.VolumeName & "" & $objItem.FileSystem & "_" & CalcKMG($objItem.Size) & "_" & $objItem.Description
         Next
EndFunc   ;==>QueryPartitionVolume

Func QueryDiskNum($d)
         $objWMIService = ObjGet("winmgmts:\.\root\cimv2")
         $colItems = $objWMIService.ExecQuery ("Associators of {win32_LogicalDisk.DeviceID='" & $d & "'} where ResultClass = Win32_DiskPartition")
         For $colItem In $colItems
                 Return "(" & QueryDiskInterface($colItem.DiskIndex) & ":hd" & $colItem.DiskIndex & ")"
         Next
EndFunc   ;==>QueryDiskNum

Func CalcKMG($n)
         If $n < 1024 Then
                 Return $n & "Byte"
         ElseIf $n < 1048576 Then
                 Return Round($n / 1024, 2) & "KB"
         ElseIf $n < 1073741824 Then
                 Return Round($n / 1048576, 2) & "MB"
         Else
                 Return Round($n / 1073741824, 2) & "GB"
         EndIf
EndFunc   ;==>CalcKMG
发表于 2010-3-3 23:43:02 | 显示全部楼层
$d = DriveGetDrive('FIXED')
For $i = 1 To $d[0]
        If $d[$i] = 'c:' Then ExitLoop MsgBox(0, 'c:', Round(DriveSpaceTotal($d[$i])) & ' MB')
Next
发表于 2010-3-4 19:59:32 | 显示全部楼层
分区还是硬盘
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-17 00:20 , Processed in 0.066639 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表