Laufwerk automatisch formatieren? [X]
@pbnewby
also ich werde dann aber nicht dererste sein der deine Anwendung testen wird, fallst du mal eine machst ^^
(reiner Selbstschutz)
also ich werde dann aber nicht dererste sein der deine Anwendung testen wird, fallst du mal eine machst ^^
(reiner Selbstschutz)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
-
xperience2003
- Beiträge: 972
- Registriert: 04.10.2004 18:42
- Computerausstattung: Amiga, LinuxMint, Windows7
- Wohnort: gotha
- Kontaktdaten:
deine spielideen erstaunen mich immer wiederSenario: 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 ^^
amiga rulez...
Rebirth Software
Rebirth Software
Zzz. Immer diese HintergedankenSTARGÅTE hat geschrieben:@pbnewby
also ich werde dann aber nicht dererste sein der deine Anwendung testen wird, fallst du mal eine machst ^^
(reiner Selbstschutz)
Ich Programmiere z.Z. einen TrueCrypt-Clone. In einem Dialogfenster soll der Benutzer neben der Laufwerksgrösse, Passwort usw. eben auch gleich festlegen können ob er das erstellte Laufwerk auch automatisch Formatieren will und wenn ja, mit welchem Dateisystem.
Zuletzt geändert von pbnewby am 19.02.2008 07:28, insgesamt 1-mal geändert.
-=[ PBNewBy ]=-
Nur als Info:RSBasic hat geschrieben:@pbnewby
>Früher gab es den undok. Parameter $FFFF um ein Laufwerk ohne Nachfragen formatieren zu könnenundokumentierte 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.
/autotest wurde scheinbar unter WinXP Pro durch /Y ersetzt. Ich nutzte jetzt jedoch die SHFormatDrive() Funktion.
-=[ PBNewBy ]=-
hier ein muster ...
vorsicht mit g:\
probiers mit einem usb-stick .
Code: Alles auswählen
;MediaFlag
#FMIFS_HARDDISK = $C
#FMIFS_FLOPPY = $8
;ClusterSize
#FMIFS_SizeDefault = 0
#FMIFS_Size512 = 512
#FMIFS_Size1K = 1024
#FMIFS_Size2K = 2048
#FMIFS_Size4K = 4096
#FMIFS_Size8K = 8192
#FMIFS_Size16K = 16384
#FMIFS_Size32K = 32768
#FMIFS_Size64K = 65536
#FMIFS_Size128K = 131072
#FMIFS_Size256K = 262144
;Command
#FMIFS_Progress = 0
#FMIFS_DoneWithStructure = 1
#FMIFS_InsufficientRights = 6
#FMIFS_WriteProtected = 7
#FMIFS_Done = 11
#FMIFS_OutPut = 14
#FMIFS_StructureProgress = 15
Procedure FormatexCallBack(lngCommand.l,lngSubAction.l,ActionInfo.l)
Select lngCommand
Case #FMIFS_Progress
CopyMemory(ActionInfo,@lngInfo,4)
Debug lngInfo
Case #FMIFS_DoneWithStructure
Debug "done"
Case #FMIFS_InsufficientRights
Case #FMIFS_WriteProtected
Debug "WriteProtected"
Case #FMIFS_Done
CopyMemory(ActionInfo,@Result,1)
Debug result
Case #FMIFS_OutPut
Case #FMIFS_StructureProgress
EndSelect
ProcedureReturn 1
EndProcedure
Procedure PWCHAR(tmp.s)
tmplen = Len(tmp) * 2
wbuf = AllocateMemory(tmplen)
MultiByteToWideChar_(#CP_ACP, 0, tmp, -1, wbuf, tmplen)
ProcedureReturn wbuf
EndProcedure
OpenLibrary (0, "FMIFS.DLL")
CallFunction (0, "FormatEx",PWCHAR("g:\"),#FMIFS_FLOPPY,PWCHAR("FAT32"),PWCHAR("test"),0,#FMIFS_SizeDefault,@FormatExCallback())
CloseLibrary(0)probiers mit einem usb-stick .
1:0>1
@bingo
Wow. Coole Sache. Diese Lösung ist einiges eleganter als mein "gehooke" der SHFormatDrive() Funktion. Werde ich bei meinem Projekt (TrueCrypt-Clone, 80% fertig) gleich einbauen bez. ersetzen.
Weiterer Vorteil:
Bei der SHFormatDrive-Methode hatte ich keine Fortschrittsanzeige da der Systemtreiber den ich für mein Projekt nutze sehr einfach gestrickt ist und nicht alle Kommandos (DeviceIOControl) unterstützt. Bei Deiner Methode geht sogar die Fortschrittsanzeige!
Schön zu sehen dass doch nicht jeder gleich an Böse Absichten denkt
Wow. Coole Sache. Diese Lösung ist einiges eleganter als mein "gehooke" der SHFormatDrive() Funktion. Werde ich bei meinem Projekt (TrueCrypt-Clone, 80% fertig) gleich einbauen bez. ersetzen.
Weiterer Vorteil:
Bei der SHFormatDrive-Methode hatte ich keine Fortschrittsanzeige da der Systemtreiber den ich für mein Projekt nutze sehr einfach gestrickt ist und nicht alle Kommandos (DeviceIOControl) unterstützt. Bei Deiner Methode geht sogar die Fortschrittsanzeige!
Schön zu sehen dass doch nicht jeder gleich an Böse Absichten denkt
-=[ PBNewBy ]=-
Es geht auch über die Konsole ohne Benutzerabfrage. Ist noch ein altes Feature aus DOS-Zeiten. Habs zwar unter XP nie benutzt, sollte aber immernoch funktionieren. Gild generell für Batch-Dateien. Du kannst eine .txt Datei als Input für die Befehle der Batchdatei verwenden.
Aufruf der Batchdatei
Batchdatei
input.txt
Wenn man den Pfeil umkehrt dann werden alle Ausgaben der Batch in die Textdatei geschrieben
Aufruf der Batchdatei
Code: Alles auswählen
batch.bat < input.txt
Code: Alles auswählen
format d:
Code: Alles auswählen
j
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!
Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke!


