|
这个隐藏反隐藏的是只支持MBR磁盘分区吧?
#!PECMD
//隐藏分区的算法
// 1 0x16 0 0 137363456 0 137363456
// 参数1 : 磁盘#分区号 如0#1
// 参数2 : 无或1 为隐藏,否则为反隐藏
_SUB HIDEPART
ENVI &&dev=%1
ENVI &&func=%2
FIND $=%2, SET func=1
PART -phy list part %&dev% ,&&data
MSTR &&type=<2>%&data% //获取 type
FIND $=%&type%, EXIT _SUB //本来为空分区
FIND $%&func%=1, CALC &&ntype=%&type% | 0x10 //隐藏
FIND $%&func%=1,! CALC &&ntype=%&type% & 0xEF //反隐藏
IFEX $0=%&ntype%, EXIT _SUB //不能变成空分区
PART -super %&dev% %&ntype% //设置新的类型
_END
//调用示例
// HIDEPART 0#1 //隐藏
// HIDEPART 0#1 反 //反隐藏
// 带提示HIDEPART_GUI
// 参数1 : 无或1 为隐藏,否则为反隐藏
_SUB HIDEPART_GUI
FIND $=%PHYDRV%,!! TEAM MESS 没有指定磁盘 @#参数错误OK *5000| EXIT _SUB
FIND $=%parth%,!! TEAM MESS 没有指定分区号 @#参数错误OK *5000| EXIT _SUB
CALL HIDEPART %PHYDRV%#%parth% %1
_END
ITEM , L475T70W35H20,隐藏, CALL HIDEPART_GUI
ITEM , L430T70W35H20,显示, CALL HIDEPART_GUI 反
// 带提示
// 参数1 : 磁盘号 如0
// 参数2 : 分区号 如1
// 参数3 : 无或1 为隐藏,否则为反隐藏
_SUB HIDEPART_MSG
FIND $=%1,!! TEAM MESS 没有指定磁盘 @#参数错误OK *5000| EXIT _SUB
FIND $=%2,!! TEAM MESS 没有指定分区号 @#参数错误OK *5000| EXIT _SUB
CALL HIDEPART %1#%2 %3
_END
//调用示例
// HIDEPART_MSG 0 1 //隐藏
// HIDEPART_MSG 0 1 反 //反隐藏
// ITEM , L475T70W35H20,隐藏, CALL HIDEPART_MSG %PHYDRV% %parth%
// ITEM , L430T70W35H20,显示, CALL HIDEPART_MSG %PHYDRV% %parth% 反
|
|