#!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%  反

