找回密码
 加入
搜索
查看: 2509|回复: 2

[系统综合] [已解决]改进一下代码以准确算出硬盘总容量

  [复制链接]
发表于 2011-9-30 17:48:07 | 显示全部楼层 |阅读模式
本帖最后由 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)
发表于 2011-9-30 18:33:27 | 显示全部楼层
期待高手出现。。。。
发表于 2011-9-30 20:12:18 | 显示全部楼层
不有函数drivespacetotal()吗
 楼主| 发表于 2011-10-1 08:37:10 | 显示全部楼层
不有函数drivespacetotal()吗
autt 发表于 2011-9-30 20:12


那是路径所在分区的大小哦,不是硬盘总容量呀
 楼主| 发表于 2011-10-1 10:34:32 | 显示全部楼层
本帖最后由 elexy 于 2011-10-1 10:43 编辑

利用$HDID = $mo.DeviceID判断,本机硬盘这个值一般都是\\.\PHYSICALDRIVE0  ,后面插上的都是 \\.\PHYSICALDRIVE1 2 3 4 5  ....
发表于 2011-10-2 20:18:57 | 显示全部楼层
回复 4# elexy
就不能用下加减法啊,遍历硬盘,然后加起来不就可以了,
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-6 09:31 , Processed in 0.082800 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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