Announcement

Collapse
No announcement yet.

Formatieren von Disketten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Formatieren von Disketten

    Mit welchen Befehl rufe ich den Windoof-Dialog zur Formatierung auf und wie sind die Parameter dazu.

    MFG Uwe Wendt

  • #2
    Hallo,

    falls im Programm auch undokumentierte Win32-API-Funktionen eingesetzt werden dürfen, steht <b>SHFormatDrive</b> zur Verfügung. Ich habe das folgende Beispiel jedoch noch niemals selbst ausprobiert:
    <pre>
    const
    SHFMT_ID_DEFAULT = $FFFF;
    // Optionen
    SHFMT_OPT_QUICKFORMAT = $0000;
    SHFMT_OPT_FULL = $0001;
    SHFMT_OPT_SYSONLY = $0002;
    // Fehlercodes
    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('Formatierung ist fehlgeschlagen');
    end;
    </pre>

    Diese API-Funktion wird nur in dem Microsoft Knowlegde Base-Artikel Q173688 dokumentiert, ist jedoch nicht in der Hilfe zum Win32-SDK enthalten. Der Parameter <i>Drive</i> bestimmt das zu formatierende Laufwerk (0=A, 1=B usw.)

    Comment


    • #3
      Danke Andreas, dass ist genau das, was ich suche..., Die Information über die API-Funktion SHFormatDrive ist ja leider ein bisschen mager. Ich muss auf diese Funktion zugreifen, weil ich in meinem Programm dem Anwender die Möglichkeit geben will, eine Bootdiskette anzulege

      Comment


      • #4
        Hallo Uwe,

        das haben die undokumentierten API-Funktionen so an sich, das die Dokumentation etwas mager ist ;-)

        Da keine Infos im Win32-SDK (Microsoft Platform SDK) auftauchen, ist nur der bereits von mir genannte <i>Microsoft Knowlegde Base-Artikel Q173688 "HOWTO: Call SHFormatDrive in Windows 95 and Windows NT"</i> verfügbar. Aus lizenzrechtlichen Gründen kann ich den Inhalt des Artikel hier nicht verteilen - allerdings kannst Du probieren, ob er im MSDN-Bereich der Microsoft-Web-Seiten auftaucht (das Online-MSDN ist kostenfrei!).

        Stichworte zu den Parametern von <b>SHFormatDrive</b>: <br>
        - <i>Handle</i> ist das eigene Formularhandle <br>
        - <i>Drive</i> ist die auf 0 basierende Laufwerksnummer (A=0; C=2)<br>
        - <i>ID</i> muss immer SHFMT_ID_DEFAULT sein<br>
        - <i>Options</i> unterstützt zur Zeit nur drei Alternativen: Der Wert 0 entspricht dem "Quick Format". Der Wert SHFMT_OPT_FULL entspricht dem vollständigen Formatieren ("Quick Format" ist deaktiviert) und SHFMT_OPT_SYSONLY überträgt nur die Systemdaten für eine bootfähige Diskette

        Comment


        • #5
          Hi Andreas,
          LOL erstmal zu deiner ironischen Bemerkung zu den undokumentierten Funktionen. Mittlerweile war ich selbst auf den MS-Seiten und habe mir erst einmal das SDK sowie den betreffenden Artikel runtergelanden. Ich habe deinen Tips direkt ausprobiert und voila, es klappt. Das der Aufruf SHFormatDrive, dass wusste ich schon, bloss ich wusste nichts über die Parameter und in welcher Bibiliothek die Funktion ist.

          Enjoy and good wor

          Comment

          Working...
          X