Seite 2 von 2
Verfasst: 18.02.2008 16:34
von STARGÅTE
@pbnewby
also ich werde dann aber nicht dererste sein der deine Anwendung testen wird, fallst du mal eine machst ^^
(reiner Selbstschutz)
Verfasst: 18.02.2008 18:15
von xperience2003
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 ^^
deine spielideen erstaunen mich immer wieder

Verfasst: 18.02.2008 21:43
von pbnewby
STARGÅTE hat geschrieben:@pbnewby
also ich werde dann aber nicht dererste sein der deine Anwendung testen wird, fallst du mal eine machst ^^
(reiner Selbstschutz)
Zzz. Immer diese Hintergedanken
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.
Verfasst: 18.02.2008 21:45
von pbnewby
Shardik hat geschrieben:pbnewby hat geschrieben:
Geht ja doch

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?

Weil hier jeder scheinbar nur hintergedanken an böse Absichten hat.
Verfasst: 18.02.2008 21:48
von pbnewby
RSBasic hat geschrieben:@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.
Nur als Info:
/autotest wurde scheinbar unter WinXP Pro durch /Y ersetzt. Ich nutzte jetzt jedoch die SHFormatDrive() Funktion.
Verfasst: 18.02.2008 21:52
von RSBasic
@pbnewby
Es gibt einen

- Button
Verfasst: 18.02.2008 21:56
von pbnewby
RSBasic hat geschrieben:@pbnewby
Es gibt einen

- Button
Sorry, gelobe besserung

Verfasst: 22.02.2008 15:31
von bingo
hier ein muster ...
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)
vorsicht mit g:\
probiers mit einem usb-stick .
Verfasst: 23.02.2008 01:44
von pbnewby
@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

Verfasst: 27.02.2008 19:41
von Thorium
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