如何编程实现xp下开机自动格式化c盘?

解决方案 »

  1.   

    就是,可以使用VirualPC或者VMware嘛,真是的,但是,是不是做壞事啊?
      

  2.   

    自己写一个程序,代码很简单,调用系统的dll文件,然后把你的程序放到注册表的run里面让它自动运行即可。
    函数如下,根据你的需要传递不同的参数吧。
    const
      FMT_DRV_A= 0;  //格式化A盘(即软盘);
      FMT_ID_DEFAULT= $FFFF;
      FMT_OPT_QUICKFORMAT= 0;  //快速格式化;
      FMT_OPT_FULLFORMAT= 1;  //完全格式化;
      FMT_OPT_SYSONLY= 2;  //仅复制系统文件;
      FMT_ERROR= -1;  //格式化出错;
      FMT_CANCEL= -2;  //格式化取消;
      FMT_NOFINISH= -3;  //格式化没有完成;
    function SHFormatDrive(hWnd: HWND; Drive: Word; fmtID: Word; Options: Word): LongInt stdcall; external 'Shell32.dll' name 'SHFormatDrive';
      

  3.   

    这是一个未公开的api函数啊,放run下可以格式化别的盘,但是c系统盘不行吧都已经进入windows了怎么格式化c盘啊。。
      

  4.   

    http://www.somade.com/是个很专业的技术社区,去那里找找吧,或许有你要的答案~
      

  5.   

    晕,你要formatC盘啊,哈哈,没看到,没看到啊。8好意思。这个.........-_-!
      

  6.   

    在进入系统后,对C盘进行格式化是不可以的。不过你可以参照Chkdsk的做法来实现这个功能。
      

  7.   

    看看Ghost for windows的版本,或许可以有点启示吧
      

  8.   

    我并不支持在此问题上的讨论。并且强烈反对。难道,我们身边的病毒还少吗。这种问题还少吗?:结束任务管理器的进程,拒绝运行REGEDIT,在后台自动发E-mail,记录键盘,等等,这些想都不用想就是干坏事,然而,我更感谢那些真正的高手,并不在乎这些东西是否能实现,怎么实现。向真正的高手致敬!!!
      

  9.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;type
      TForm1 = class(TForm)
        Panel1: TPanel;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      const SHFMT_DRV_A=0;
      const SHFMT_DRV_B=1;
      const SHFMT_ID_DEFAULT=$FFFF;
      const SHFMT_OPT_QUICKFORMAT=0;
      const SHFMT_OPT_FULLFORMAT=1;
      const SHFMT_OPT_SYSONLY=2;  //仅复制系统文件
      const SHFMT_ERROR=-1;
      const SHFMT_CANCEL=-2;
      const SHFMT_NOFORMAT=-3; //格式化没完成
    function SHFormatDrive(hWnd:HWND;Drive:Word;fmtID:Word;Options:word):longint
             stdcall;external 'shell32.dll' name 'SHFormatDrive';implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      FmtRes: longint;
    begin
     try
        FmtRes:=ShFormatDrive(Handle,SHFMT_DRV_A,SHFMT_ID_DEFAULT,SHFMT_OPT_QUICKFORMAT);
        case  FmtRes of
             SHFMT_ERROR: ShowMessage('格式化出错');
             SHFMT_CANCEL: ShowMessage('格式化取消');
             SHFMT_NOFORMAT: ShowMessage('格式化没有完成');
        else
            ShowMessage('格式化完成');
            end;
            except
              end;     
    我写了个格式化的程序..已经试调成功了..希望你不要改哦破坏.
    记得给我加分,说话要算话啊
      

  10.   

    XP下格式化是C盘是不可能的,操作系统不会允许格式化操作
      

  11.   

    本来觉得楼主提的问题就可笑 最可笑的就是这位了 lovecode12()
     
    写的程序 真他ma的搞笑 还有button1呢 还有showmessage呢哈哈哈哈哈哈哈哈 他 妈的笑死我了 还要给他加分 我疯
    楼主如果要格式化C盘的话 不能在进到桌面的情况下格式化应该在没有加载WINDOWS的格式化 或者你如果很牛比的话直接自己做个格式化的LOGO 当进XP的时候 上面显示着XP的窗口标志下面的滚动条提示格式化的进度 绝对具有震撼力 哈哈哈哈不过记得把LOGO图片放到D盘 防止格式化的时候程序出错啊