找回密码
 加入
搜索
查看: 3303|回复: 6

[系统综合] 磁盘分区的状态(已完成)

  [复制链接]
发表于 2015-12-24 16:20:27 | 显示全部楼层 |阅读模式
本帖最后由 qqgghh1 于 2016-2-15 17:04 编辑


需求:如上图,解决技术员安装系统后忘记格式化分区的问题。用户是使用USERS权限,领用后无法正常使用电脑。
思路:执行脚本,若发现有未分配的卷,则提示出来。
目前有学习_WinAPI_GetVolumeInformation、_WinAPI_GetDriveGeometryEx等相关,无论Drive还是Volume,都要求指定驱动器号才能返回相关信息。
不得其解,请求帮助,谢谢!

2016/2/15补充:

看API、WMI,眼都看肿了,也没找到直接获取的(估计还是自己功力不够),想用diskpart回显,又说该命令不支持回显。对着计算机磁盘管理界面发呆,若用该硬盘总容量-该硬盘所有分区容量总和,是不是就是没有被分配的呢。
马上来试:
用DriveGetDrive('fixed') 获得所有可见分区
用_WinAPI_GetDriveNumber,将属同一硬盘上的可见分区容量加总
用_WinAPI_GetDriveGeometryEx 获取相应硬盘的总容量
哈哈,菜鸟也有菜鸟的招,先这样吧。
#Include <WinAPIEx.au3>

Opt('MustDeclareVars', 1)

Dim $Drive = DriveGetDrive('fixed')
Dim $List[10],$partition_info,$disk_info

For $i = 0 To UBound($Drive) - 1
        $List[$i] = ''
Next
If IsArray($Drive) Then
        For $i = 1 To UBound($Drive) - 1
                $partition_info = _WinAPI_GetDriveNumber($Drive[$i]);检索指定驱动器的类型、编号、分区号,[1]:对应该分区的硬盘号
                If IsArray($partition_info) Then
                        $List[$partition_info[1]] +=Floor(DriveSpaceTotal($Drive[$i])/1024);同一块硬盘上的分区容量自加
                EndIf
        Next
EndIf

For $i = 0 To UBound($Drive) - 1
        If $List[$i] Then
                $disk_info = _WinAPI_GetDriveGeometryEx($i);检索磁盘的几何结构扩展信息,[5]:The disk size
                Dim $check_diff = Floor ($disk_info[5]/1024/1024/1024  )-$List[$i]
                If $check_diff >0 Then  MsgBox(0,0,"磁盘"&$i&"有"&$check_diff&"GB空间未分配")
        EndIf
        If DriveStatus($Drive[$i]) = "UNKNOWN" Then  MsgBox(0,0,"分区"&$Drive[$i]&"未格式化")
Next

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2015-12-25 09:23:43 | 显示全部楼层
本帖最后由 fuldho 于 2015-12-25 09:28 编辑

任意一款磁盘分区软件分区,无论大小都会留下未分配区域,有些分区软件也无法查看留下未分配区域,
WinHex是可以查看到的,是否有其他工具可以判断就不知道了。

DiskGenius查看


WinHex查看

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2015-12-25 10:25:51 | 显示全部楼层
回复 2# fuldho


    多谢fuldho的用心回复,谢谢提点。我再试试看,若找不到API方法,再使用第三方软件返回值了。
发表于 2015-12-29 09:19:38 | 显示全部楼层
学习一下
发表于 2015-12-30 08:22:18 | 显示全部楼层
回复 3# qqgghh1

使用第三方软件返回值比API方法快捷,比如用第三方软件返回U盘UD区和EFI高端隐藏区大小等。
发表于 2015-12-31 18:32:24 | 显示全部楼层
学习了  感谢 分享
发表于 2016-1-2 01:24:14 | 显示全部楼层
学习了  感谢 分享
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-28 07:53 , Processed in 0.080485 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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