本帖最后由 ahkang 于 2009-11-8 11:24 编辑
发一个可段可以在 Windows 和 WinPE 系统环境下查看隐藏分区的代码:#InClude <Process.Au3>
Global $DosTool=@SystemDir&'\DsptW.eXe'
Global $ParVol=@TempDir&'\ParVol.InI'
Global $IniFile=@TempDir&'\DskVol.InI'
Global $VolInfo=@TempDir&'\VolInfo.InI'
Global $Vol=@TempDir&'\PartInfo.InI'
Global $ShowDrive=@SystemDir&'\ShowDrive.eXe'
Global $ComLine=$DosTool&' /A /Pdr >'&$IniFile
If Not FileExists($ShowDrive) Then FileInstall('ShowDrive.Vxd',$ShowDrive,1)
_RunDOS($ShowDrive)
If FileExists($VolInfo) Then FileDelete($VolInfo)
If Not FileExists($DosTool) Then FileInstall('DsptW.Vxd',$DosTool,1)
_RunDOS($ComLine)
FileSetAttrib($IniFile,'+Sh')
For $i=3 To 26
$ReadFile=FileReadLine($IniFile,$i)
If $ReadFile='' Then ExitLoop
If StringMid($ReadFile,4,1)<>2 Then
$StrExt=StringReplace($ReadFile,': ','=')
FileWrite($VolInfo,StringLeft($StrExt,9))
FileWriteLine($VolInfo,'')
ElseIf StringLeft($ReadFile,4)=2 Then
$ReadFile=FileReadLine($IniFile,$i+1)
FileWrite($VolInfo,StringLeft($StrExt,9))
EndIf
Next
FileSetAttrib($VolInfo,'+RSh')
FileSetAttrib($IniFile,'-RSh')
FileDelete($IniFile)
$DiskInfo=FileRead($VolInfo)
FileSetAttrib($VolInfo,'-RSh')
FileDelete($VolInfo)
MsgBox(262144,'',$DiskInfo)
其中所涉及的文件在附件里:
声明:Dsptw 下载于 【中国DOS联盟论坛】;ShowDrive (由无忧启动论坛 123 mm 大侠编写) 下载于 【无忧启动论坛】。版权归原作者所有!
这段代码中,除了使用 ShowDrive 来查看隐藏分区以外,还借助 Dsptw 来分别判断第 1 硬盘活动分区和最后分区;有关系统备份/还原程序可能用得着。 |