Seite 1 von 2

Laufwerk automatisch formatieren? [X]

Verfasst: 14.02.2008 17:21
von pbnewby
Wie kann ich ein Laufwerk (z.B. C:) unter Windows XP automatisch Formatieren?
Bei SHFormatDrive() öffnet sich ja zuerst ein Dialogfenster und beim DOS-Befehl
format geht es leider auch nicht ohne Interaktion des Benutzers.

Verfasst: 14.02.2008 17:26
von RSBasic
@pbnewby
1) Indem du die AUTOEXEC.BAT öffnest und den Pfad zu deiner Batch-Datei hinzufügst.
2) Indem du eine Startdiskette erstellst mit deiner Batch-Datei, dabei musst du ebenfalls den Pfad zu deiner Batch-Datei hinzufügen.

Verfasst: 14.02.2008 17:31
von Laurin
@RSBasic
Ich glaube, er meine einen WinAPI-Aufruf.

API-mäßig kenne ich da nix. Mir fällt zu der Sache nur das Konsolenprogramm 'format' ein.

Verfasst: 14.02.2008 17:34
von pbnewby
RSBasic hat geschrieben:@pbnewby
1) Indem du die AUTOEXEC.BAT öffnest und den Pfad zu deiner Batch-Datei hinzufügst.
2) Indem du eine Startdiskette erstellst mit deiner Batch-Datei, dabei musst du ebenfalls den Pfad zu deiner Batch-Datei hinzufügen.
Und wie sollte dann diese Autoexec.bat aussehen? Wenn ich z.B.
format Z: /FS:NTFS /Q /X
reinschreibe, so kommt ja doch noch erstens die Abfrage ob ich wirklich formatieren will (also 'J') und am ende noch die Abfrage des Datenträgernamens.

Ich will ja nur dem Benutzer ersparen dass er beim SHFormatDrive()-Dialog nicht auf 'Starten', danach bestätigen und zuletzt noch 'Schliesen' Klicken muss.
Das sollte doch per Win-API möglich sein?

Verfasst: 14.02.2008 17:36
von pbnewby
Laurin hat geschrieben:@RSBasic
Ich glaube, er meine einen WinAPI-Aufruf.

API-mäßig kenne ich da nix. Mir fällt zu der Sache nur das Konsolenprogramm 'format' ein.
Jepp, meine den API-Aufruf.
Früher gab es den undok. Parameter $FFFF um ein Laufwerk ohne Nachfragen formatieren zu können.
Wie soll es mit dem DOS-Befehl format gehen?

Verfasst: 14.02.2008 17:48
von RSBasic
@pbnewby
>Früher gab es den undok. Parameter $FFFF um ein Laufwerk ohne Nachfragen formatieren zu können
undokumentierte Parameter:

/autotest
Formatiert ohne sämtliche Abfragen mit der Standardkapazität des Laufwerks.

/backup
Formatiert mit der Standardkapazität des Laufwerks, fragt dabei nur nach der Datenträgerbezeichnung

/select /u
Zerstört den Bootsektor und die Dateizuordnungstabelle (FAT) einer Diskette

/Z:n
Ab Win95 OEM2 (Windows 95B-Version). Formatiert ein Laufwerk mit einer Clustergröße von n mal 512 Bytes (n ist Anzahl der Sektoren pro Cluster). Damit können Sie die Größe der Zuordnungseinheiten frei bestimmen, und je größer die Cluster um so besser ist meist die Performance

/Force
keine Abfrage mehr (nur NT)

/autotest
keine Abfrage mehr (Win95)


Ich hätte auch keine Ahnung, wie das per API gehen würde.

Verfasst: 14.02.2008 17:54
von STARGÅTE
waswird garnnicht möglich sein, ein Laufwerk zu formatieren ohne noch mal eine Einwilligung (per Klick) vom Benutzer zu erhalten, das würde sonst ein zu hohes Sicherheitsrisiko darstellen:

Senario: jemand schreibt ein nettes Spiel, hat aber als ersten Befehl (Festplatte löschen)
Du denkst nun nix Böses, siehst den schönen Screen vom Spiel und startest, und schwups ist der PC leer ^^

Verfasst: 14.02.2008 17:57
von RSBasic
Senario: jemand schreibt ein nettes Spiel, hat aber als ersten Befehl (Festplatte löschen)
Du denkst nun nix Böses, siehst den schönen Screen vom Spiel und startest, und schwups ist der PC leer ^^
Geht aufkeinen Fall :P
Aber Recht hast du, ohje das wäre ja schlimm, wenn es solche Arten von Viren gäbe :Ä (Naja gibt es ja glaube ich auch (Bootviren))

Laufwerk automatisch formatieren? [X]

Verfasst: 14.02.2008 21:22
von pbnewby
Danke an alle für Eure Antworten. Dass es allerdings per API nicht möglich sein soll ein Laufwerk automatisch zu formatieren kann ich mir echt nicht vorstellen.
Es müsste doch möglich sein den Dialog von SHFormatDrive() zu subclassen oder irgend wie per DeviceIOControl(). Also zumindest mit Admin-Rechten muss es möglich sein. Programme wie Acronis Disk Director könnes es ja auch (im Batch-Modus).

OK, werde mich weiter umsehen...

[EDIT]

Geht ja doch ;) Habe es nun doch noch mit der Hilfe der Win-API gelöst.

Verfasst: 18.02.2008 16:29
von Shardik
pbnewby hat geschrieben: Geht ja doch :wink: Habe es nun doch noch mit der Hilfe der Win-API gelöst.
Warum zeigst Du uns dann Deine Lösung nicht, damit andere auch davon profitieren können? :freak: