找回密码
 加入
搜索
查看: 8092|回复: 18

在PE下格式化C盘

[复制链接]
发表于 2008-7-25 13:26:15 | 显示全部楼层 |阅读模式
在PE下格式化C盘
能直接调用DOS命令实现吗?
希望高手能给点代码参考下!!

[ 本帖最后由 xgdjkk 于 2008-7-31 16:16 编辑 ]
发表于 2008-7-25 14:01:53 | 显示全部楼层
直接调用DOS的format命令。如果没有就自己带上一个。
 楼主| 发表于 2008-7-25 14:26:04 | 显示全部楼层
谢谢你的答复,我想写个自动格式化C盘工具,我调用了那个工具,但不能实现自动完成
请再帮忙解决下!!
  是不是还要下载个FORMAT工具到C盘才能完成?

[ 本帖最后由 xgdjkk 于 2008-7-25 14:27 编辑 ]
发表于 2008-7-25 14:42:31 | 显示全部楼层
需要界面的,用API亦可。

DWORD   SHFormatDrive(HWND   hwnd,   
          UINT   drive,     //A盘:0,   B盘:1   
          UINT   fmtID,     //未知,通常为0   
          UINT   options   //0:快速格式化,   1:通常格式化,   2:传递启动文件   
  );
 楼主| 发表于 2008-7-25 14:59:08 | 显示全部楼层
在你之前的一篇回复里看到了,但是我安装自动安装的方式让他实现自动格式化,却没有反应,是怎么回事啊?
发表于 2008-7-25 15:00:16 | 显示全部楼层
什么没有反应?
 楼主| 发表于 2008-7-25 15:04:30 | 显示全部楼层
Local $DriveNumber=2  ;A盘为0,B盘为1,C盘为2,D盘为3,依次类推……
Local $FormatOptions=1 ;1为快速格式化,0为完全格式化
DllCall("shell32.dll","int","SHFormatDrive","hwnd",0,"int",$DriveNumber,"int",0,"int",$FormatOptions)
WinWaitActive("格式化 WINXP (C:)", "容量")
     Send("!s")
可以调用出来,但不能发送确定事件,我把!S 换成{enter}也不行
---------------------------------------------------------------------------------------
DWORD   SHFormatDrive(HWND   hwnd,   
          UINT   drive,     //A盘:0,   B盘:1   
          UINT   fmtID,     //未知,通常为0   
          UINT   options   //0:快速格式化,   1:通常格式化,   2:传递启动文件   
  );
这代码要怎么实现啊?我对API不熟悉!!
发表于 2008-7-25 15:30:32 | 显示全部楼层
如果对API不熟悉。用format岂不是更方便?
 楼主| 发表于 2008-7-25 15:57:15 | 显示全部楼层
谢谢!
我知道怎么做了!
发表于 2008-7-25 16:02:30 | 显示全部楼层
格式化C盘的目的是什么?注意可不一定PE下的C盘就真的是你的C盘

也可以用GHOST做一个空白分区的镜像,有特殊需要做两个吧,一个FAT32的一个NTFS的,绝对格式化C盘就是把空白分区镜像恢复到第一硬盘第一分区

GHOST的命令不用多说了吧

[ 本帖最后由 skyfree 于 2008-7-25 16:03 编辑 ]
 楼主| 发表于 2008-7-25 16:08:49 | 显示全部楼层
在PE下格式化掉C盘.然后解压系统文件到C盘,用FORMAT在PE下应该是格哪个才算是C盘?
有什么办法实现吗?
发表于 2008-7-28 21:05:45 | 显示全部楼层
PE下是有個命令行的分區工具。可以寫成腳本來進行分區的。
发表于 2008-7-28 21:50:31 | 显示全部楼层
用format利索。
                                if GUICtrlRead($NTFS)=$GUI_CHECKED then 
                                        $formatST=" /c "&$mypath&"\format " & $seltdrv & " /fs:ntfs"&" /v:"&$Vtime&" /q /y"
                                Else
                                        $formatST=" /c "&$mypath&"\format " & $seltdrv & " /fs:fat32"&" /v:"&$Vtime&" /q /y"
                                EndIf
RunWait(@ComSpec & $formatST,"",@SW_HIDE)
 楼主| 发表于 2008-7-29 09:50:06 | 显示全部楼层
还是顽固大哥人好!
把源码都拿出来了!
真是感激!!!
 楼主| 发表于 2008-7-29 11:12:11 | 显示全部楼层
为什么把FAT32格式的系统格式化为NTFS却没反应呢?格式为FAT32又成功了?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-28 21:27 , Processed in 0.088896 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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