[已解决]改进一下代码以准确算出硬盘总容量
本帖最后由 elexy 于 2011-10-1 13:48 编辑不考虑多块硬盘的情况,就是当前使用的硬盘总容量。
这段代码可行,但是不能插入U盘,一插入U盘/移动硬盘,计算的就是U盘/移动硬盘的容量了。
而且如果存在读卡器,也就是只要打开我的电脑里面有 可移动磁盘 就读不出来硬盘的数值。
AU3内置的一些如 DirGetSize之类函数,在WIN系统下是读不出隐藏分区的,容量不准的, 不知道怎么解决???
初步想法是 利用$HDID = $mo.DeviceID判断,默认磁盘这个值都是\\.\PHYSICALDRIVE0 ,只计算这个值的磁盘容量不知道代码怎么实现?或是有更好的办法?$strComputer = "."
$objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
$moc = $objWMIService.ExecQuery("Select * from Win32_DiskDrive")
For $mo In $moc
$HDsize0 = Round($mo.Size / 1024 / 1024 / 1024)
$HDID = $mo.DeviceID
Next
msgbox(0, $HDID ,$HDsize0) 期待高手出现。。。。 不有函数drivespacetotal()吗 不有函数drivespacetotal()吗
autt 发表于 2011-9-30 20:12 http://www.autoitx.com/images/common/back.gif
那是路径所在分区的大小哦,不是硬盘总容量呀 本帖最后由 elexy 于 2011-10-1 10:43 编辑
利用$HDID = $mo.DeviceID判断,本机硬盘这个值一般都是\\.\PHYSICALDRIVE0,后面插上的都是 \\.\PHYSICALDRIVE1 2 3 4 5.... 回复 4# elexy
就不能用下加减法啊,遍历硬盘,然后加起来不就可以了,
页:
[1]