Diskette formatieren
-
Auszug aus meinem Code:
... void __fastcall Twnd_CreateUser::cmd_CreateUserClick(TObject *Sender) { AnsiString slVolumeName; DWORD dwVolumeSerial; bool DriveStatus; //Erzeugen und Verschlüsseln der Userdatei ... //Hinweis zum Einlegen der Diskette Application->MessageBox("*) Bitte legen Sie eine Diskette in Laufwerk A: ein.\n*) Achtung alle Daten auf dieser werden gelöscht!\n*) Klicken Sie auf OK sobald sich die Diskette im Laufwerk befindet.\n*) Klicken Sie im folgenden Fenster auf 'Starten'.\n*) Warten Sie den Vorgang ab und schließen Sie dann das Fenster.","Warnung",MB_OK|MB_ICONWARNING); //Überprüfen ob Diskette in Laufwerk A do { DriveStatus = IsDiskInDrive("a",slVolumeName,dwVolumeSerial); if(DriveStatus != true) { Application->MessageBox("*) Sie haben keine Diskette in Laufwerk A: eingelegt.\n*) Legen Sie die Diskette ein und klicken Sie erneut auf 'Benutzer anlegen'.","Warnung",MB_OK|MB_ICONERROR); } else { //Formatieren der Diskette ... //Schreiben der Userdatei auf die Diskette tf_NewUserDetails->Lines->SaveToFile("a:\\userinfo.dat"); //Abschließende Erfolg-Meldung Application->MessageBox("Benutzer wurde erzeugt.","Warnung",MB_OK|MB_ICONINFORMATION); //Zurückkehren zum Start-Fenster Close(); } } while(DriveStatus = false); } //---------------------------------------------------------------------------
daraus dürfte wohl klar ersichtlich sein, dass der User Informiert wird
-
Dann musst du ja nur noch den Befehl
system("format a:");
einfügen und schon läufts.
FGGF
-
oder damit:
[url]
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/shell/reference/functions/shformatdrive.asp
[/url]Meep Meep
-
The Godfather schrieb:
Dann musst du ja nur noch den Befehl
system("format a:");
einfügen und schon läufts.
FGGF
Nein eben nicht da ich nicht will dass sich irgendein Fenster öffnet bei dem der User was tun muss. Es soll automatisch von statten gehen !
-
Für Alle die es interessiert
Formatieren einer Diskette ohne Fenster:
... void __fastcall Twnd_CreateUser::cmd_CreateUserClick(TObject *Sender) { AnsiString slVolumeName; DWORD dwVolumeSerial; bool DriveStatus; //Strukturen die zum Formatieren benötigt werden STARTUPINFO si; PROCESS_INFORMATION pi; ZeroMemory( &si, sizeof(si) ); si.cb = sizeof(si); ZeroMemory( &pi, sizeof(pi) ); //Erzeugen und Verschlüsseln der Userdatei ... //Hinweis zum Einlegen der Diskette Application->MessageBox("*) Bitte legen Sie eine Diskette in Laufwerk A: ein.\n*) Achtung alle Daten auf dieser werden gelöscht!\n*) Klicken Sie auf OK sobald sich die Diskette im Laufwerk befindet.\n*) Klicken Sie im folgenden Fenster auf 'Starten'.\n*) Warten Sie den Vorgang ab und schließen Sie dann das Fenster.","Warnung",MB_OK|MB_ICONWARNING); //Überprüfen ob Diskette in Laufwerk A do { DriveStatus = IsDiskInDrive("a",slVolumeName,dwVolumeSerial); if(DriveStatus != true) { Application->MessageBox("*) Sie haben keine Diskette in Laufwerk A: eingelegt.\n*) Legen Sie die Diskette ein und klicken Sie erneut auf 'Benutzer anlegen'.","Warnung",MB_OK|MB_ICONERROR); } else { //Formatieren der Diskette CreateProcess(NULL,"format.com a: /y /q",NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi); //Schreiben der Userdatei auf die Diskette tf_NewUserDetails->Lines->SaveToFile("a:\\userinfo.dat"); //Abschließende Erfolg-Meldung Application->MessageBox("Benutzer wurde erzeugt.","Warnung",MB_OK|MB_ICONINFORMATION); //Zurückkehren zum Start-Fenster Close(); } } while(DriveStatus = false); } //---------------------------------------------------------------------------
Na TheGodfather was sagst jetzt...
-
Mit einer While-Schleife würde ich das nicht machen. Der User hat doch gar keine Chance das Ding abzubrechen, es sei denn er formatiert, oder?
Außerdem würde ich anstatt:
CreateProcess(NULL,"format.com a: /y /q",NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi);
lieber
CreateProcess(NULL,"format.com a: /y /u",NULL,NULL,FALSE,CREATE_NO_WINDOW,NULL,NULL,&si,&pi);
verwenden.
-
Würde das nicht reichen wenn alle Daten einfach nur gelöscht werden?
Also mit DeleteFile undso?
Oder kann das auch passieren das dieDiskette unformatiert ist?
-
er will doch gar nicht abbrechen können.
die diskette soll formatiert werden, ohne abbruch ohne info des users.
hat der pech wenn noch wichtige, lebensnotwenidige passwörter auf der disk waren!!!Bj
-
Manche halten die User wahrscheinlich für so dumm wie sich selber. Deswegen soll der User ja nix mitkriegen.
Zwei Punkte:1.) Wer nutzt heute noch Disketten als Speichermedium ( ausser zum Knacken von Windows Passwörtern....
2.) Für wie doof werden manche User von anderen (geistig höhergestellten Wesen) den gehalten ??
Okay ich hab doch drei Punkte:
3.) Meine Schwester ist 9 Jahre alt aber sie seit drei Jahren in der Lage eine Diskette zu formatieren. Ist ja auch arg schwer. Rechtsklick formatieren und los gehts.
:p
FGGF :p
-
Nein, das Programm wird zum Unterricht in einem Kurs genutzt werden bei dem Leute die den PC noch nie benutzt haben die Diskette als User-ID Disk verwenden werden , ok ² TheGodfather
-
@The Godfather:
Um sein Programm richtig und unmißverständlich zu gestalten, sollte man immer vom dümmsten User der Welt ausgehen. Das ist eine wichtige Design-Regel.
Zu deinen drei Punkten: Polemik sollte in einer sachlichen Diskussion nicht verwendet werden.
-
Danke dass du mich verstehst, Grossmeister