首页  编辑  

格式化磁盘

Tags: /超级猛料/VCL/Common.Dialog.通用对话框和控件/   Date Created:

There is an API hidden away in Shell32.dll called SHFormatDrive, this brings up the standard format removable drive dialog. I stumbled across this in the borland.public.delphi.winapi newsgroup.

{implementation section}

..

..

const

       SHFMT_ID_DEFAULT        = $FFFF;

       // Formating options

       SHFMT_OPT_QUICKFORMAT   = $0000;

       SHFMT_OPT_FULL          = $0001;

       SHFMT_OPT_SYSONLY       = $0002;

       // Error codes

       SHFMT_ERROR             = $FFFFFFFF;

       SHFMT_CANCEL            = $FFFFFFFE;

       SHFMT_NOFORMAT          = $FFFFFFFD;

function SHFormatDrive(Handle: HWND; Drive, ID, Options: Word): LongInt;

       stdcall; external 'shell32.dll' name 'SHFormatDrive'

procedure TForm1.btnFormatDiskClick(Sender: TObject);

var

       retCode: LongInt;

begin

       retCode:=SHFormatDrive(Handle, 0, SHFMT_ID_DEFAULT,SHFMT_OPT_QUICKFORMAT);

       if retCode < 0 then

               ShowMessage('Could not format drive');

end;

end.

也可以用下面的方法调用:

procedure TForm1.Button1Click(Sender: TObject);

begin

 ShellExecute(Application.Handle,

              PChar('Open'),

              PChar('C:\Windows\Rundll32.exe'),

              PChar('Shell32.dll,SHFormatDrive'),

              PChar('C:\Windows'),

              SW_SHOWNORMAL);

end;