Home » Tipps & Tricks » System » Systemdialoge » Format-Dialog für Datenträger anzeigen

Format-Dialog für Datenträger anzeigen

Folgende Funktion zeigt den Format-Dialog für ein Laufwerk an. Der Funktion muss als Parameter der entsprechende Laufwerksbuchstabe übergeben werden. Wenn der Datenträger korrekt formatiert wurde, gibt die Funktion True zurück.

function FormatDrive(ADrive: Char): Boolean;
type
  TFormatFunction = function(HWND: THandle;
                             Drive: Dword;
                             FmtID: Dword;
                             Options: Dword): Dword; stdcall;
var
  FormatFunc: TFormatFunction;
  DLLHandle: THandle;
  Res: integer;
const
  SHFMT_ID_DEFAULT = 65535;
  SHFMT_Error = -1;
  SHFMT_Cancel = -2;
  SHFMT_NoFormat = -3;
begin
  Result := false;
  ADrive := UpCase(ADrive);
  DLLHandle := LoadLibrary('Shell32.dll');
  try
    FormatFunc := GetProcAddress(DLLHandle, 'SHFormatDrive');
    if Assigned(FormatFunc) then
    begin
      Res := FormatFunc(Application.Handle, ord(ADrive)-65, SHFMT_ID_Default, 0);
      Result := (Res  SHFMT_Error) and
                (Res  SHFMT_Cancel) and
                (Res  SHFMT_NoFormat);
    end;
  finally
    FreeLibrary(DLLHandle);
  end;
end;