Festplatte formatieren mit C++

  • Themenstarter Themenstarter felikz
  • Beginndatum Beginndatum
F

felikz

Guest
Hallo
Ich möchte gerne wissen wie man mit C++ eine Festplatte formatiert!
Ich komm irgendwie net klar mit dem befehl ioctl_disk_format...
Man kann es natürlich über system("format c:") machen aber es soll über einen befehl von c++ laufen.
Ein Beispielprogramm würde mir sehr weiterhelfen!

Danke im Vorraus
 
Also: :evil:

EINMAL posten in EINER Kategorie reicht !!!

Dir wird trotzdem nicht mehr geholfen !!! ;)
 
@pumuckel:

Ich weiß, daß klingt jetzt heftig, aber:

Musst du deinen Senf überall zu abgeben? Das bringt doch hier jetzt keinen weiter.
Behalte deine Infolosen Informationen und Gedanken bitte für dich und schreib nur wenn du etwas WICHTIGES zum Thema beitragen kannst.


Ist doch ganz klar:
Er will ein Programm zum formatiern aus der Festplatte schreiben, oder den Befehl aus so einem Programm aufrufen. Wenn du dier sowas nicht vorstellen kannst, schweig einfach zum Thema.


;) Das musste jetzt mal raus !!!
 
@Gizmo22

Musst du deinen Senf überall zu abgeben? Das bringt doch hier jetzt keinen weiter.

hui, was soll das?
das hat doch mit dazu senfen nun wirklich net zu tuen.
ich stelle hier fragen und erwarte eine ordentliche antwort, dafür ist doch das board da.
du hast doch auch mal klein angefangen.

Er will ein Programm zum formatiern aus der Festplatte schreiben, oder den Befehl aus so einem Programm aufrufen.

aber was soll das bringen? das kann doch net so " schwer " die vorteile mal genauer zu erläutern.

Das musste jetzt mal raus !!!

du mußt mir mein kopf nicht waschen, das mache ich selber :rolleyes:

mfg.pumuckel

ptw. aller anfang ist schwer * :P *
 
Also: Teufel

EINMAL posten in EINER Kategorie reicht !!!

Dir wird trotzdem nicht mehr geholfen !!! Augenzwinkern
*lol*
Musst du deinen Senf überall zu abgeben? Das bringt doch hier jetzt keinen weiter.
Behalte deine Infolosen Informationen und Gedanken bitte für dich und schreib nur wenn du etwas WICHTIGES zum Thema beitragen kannst.
Hmmm das wird von C++ aus ziemlich schwer da du ja dann nicht nur den Format Befehl haben musst sondern alles andere ich verstehe dich richtig du willst nicht die DOS eigenen Format funktion nutzen?
Also das problem wird bei den verschiedene Filsys liegen......
Aber goggle doch mal nach nem source von nem Linux formator.....
 
Ich hab schon bei google und auch bei anderen suchmachinen geguckt, aber nix wirkliches gefunden.
Ich bin eigentlich eher noch ein anfänger.
Bei http://msdn.microsoft.com gibts die ioctl befehle. aber was da steht versteh ich net.
Der Befehl mit dem es vielleicht funzen könnte, lautet:
IOCTL_DISK_FORMAT_TRACKS
 
Also den Befehl haben wir soweit ich das noch weis einmal genutzt um nur bestimmte Dateien auf einer Diskette zu löschen und sozusagen drüber zu formatieren.

Für was brauchst du die Befehle? Hatte mir gedacht du möchtest ein Computerspiel programmieren, z.B. ein Egoshooter und wenn man 0 HP mehr hat, wird die Festplatte "aus dem Windows heraus" formatiert. Ich glaube so schnell wie man das durchspielen würde, könnte man ganricht schauen.
 
Hi
Vielleicht kann mir jemand ein beispielprogramm schreiben?!
Ich möchte ein Formatierprogramm schreiben, und brauche eine Funktion, die die Festplatte formatiert!
 
1. Ich dachte du willst das Programm schreiben, wieso soll es dann jemand anders für dich tun?

2. Kleiner Tip am Rande, wieso befasst du dich nicht ersteinmal mit dem gewünschten Format, in deinem Fall wohl NTFS.

3. Noch ein Tip. Es gibt OPEN SOURCE!!! tools die sowas machen ...


PS: Ansonsten
system("format x:");
 
Kannst du mir einen Befehl geben mit dem das Formatieren geht, wie schon gesagt nicht der DOS befehl format x:, sondern ein windows befehl sozusagen.
Ich hab schon nach open source gesucht wegen formatiern aber da kam nix richtiges bei raus
 
Das geht nur unter umständen...

...da das Programm mit welchem du die formation starten willst ja vom BS gelesen und ausgeführt wird

Davon abgesehen macht das windows stress wenn du es formatierst wenn du noch drin bist.

Funktioniert wenn du eine datei nimmst die vor Windows gestartet wird
(es gibt bestimmet noch sowas wie damals die autoexe.bat) und diese vom programm aus umschreibst (bat dateien kannst du wie eine textdatei auslesen und schreiben)
und dann lässt du nur noch den rechner abschmieren, so das der user gezwungen ist das system neuzustarten.

wenn er dann wieder hochfährt, die autoexe (oder wie auch immer diese datei jetzt heisst) startetmüsste er eigentlich statt windows hochzufahren die partition löschen (d.h. nicht append sondern nur write verwenden beim umschreiben)

ich hoffe ich konnte helfen

wenn jemand ne bessere idee hat in ich neugierig
 
Um mal kurz hier zu posten.
Am einfachsten ist es,wenn du eine Start(BOOT)-Diskette erstellst.
auf dieser werden dann eh Systemdateien geschrieben.
Unter anderem auch:
Io.SYS
MSDOS.SYS
Command.com
Config.sys
Autoexec.bat
Aber
wenn du es mit XP erstellst heißt die autoexec.NT weil XP auf NT-Basis funzt und nicht DOS(raw bzw FAT 16)
im Netz schweben überall Tools rum um solch eine Diskette mit alten Dos-Befehlen auszurüsten( zu Formatieren).
Dann ist es ein Leichtes die Autoexec.bat umzuschreiben.
Z.B. könnte diese so aus sehen

@ECHO OFF
set EXPAND=YES
SET DIRCMD=/O:N
set LglDrv=27 * 26 Z 25 Y 24 X 23 W 22 V 21 U 20 T 19 S 18 R 17 Q 16 P 15
set LglDrv=%LglDrv% O 14 N 13 M 12 L 11 K 10 J 9 I 8 H 7 G 6 F 5 E 4 D 3 C
cls
call setramd.bat %LglDrv%
set temp=c:\
set tmp=c:\
path=%RAMD%:\;a:\;%CDROM%:\
copy command.com %RAMD%:\ > NUL
set comspec=%RAMD%:\command.com
copy extract.exe %RAMD%:\ > NUL
copy readme.txt %RAMD%:\ > NUL

:ERROR
IF EXIST ebd.cab GOTO EXT
echo Please insert Windows 98 Startup Disk 2
echo.
pause
GOTO ERROR

:EXT
%RAMD%:\extract /y /e /l %RAMD%: ebd.cab > NUL
echo The diagnostic tools were successfully loaded to drive %RAMD%.
echo.

IF "%config%"=="NOCD" GOTO QUIT
IF "%config%"=="HELP" GOTO HELP
LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%
echo.
GOTO QUIT

:HELP
cls
call help.bat
echo Your computer will now restart and the startup menu will appear.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
echo.
restart.com
GOTO QUIT

:QUIT
echo To get help, type HELP and press ENTER.
echo.
rem clean up environment variables
set CDROM=
set LglDrv=

In Diesem Falle ist es eine von Win98 mit Cd-Rom Loader
Zu sehen am Befehl LH %ramd%:\MSCDEX.EXE /D:mscd001 /L:%CDROM%
welcher als treiber hier fungiert.
Hier wird noch einiges mehr getan,um das alles hier und jetzt zu erklären,könnte ich tagelang schreiben um dir zu vermitteln,wie man Dos-Befehle vorallem welche man verwenden kann und muß um das gewünschte Ergebnis zu erhalten.
Hoffe ich konnte ein wenig weiter helfen.
MFG
 
Noch eine Idee...

Ich glaube das man mit C++ die 0-Spur lesen kann.
-->Man kann sie auch schreiben womit man den selben Effekt wie bei einer Schnellformatierung erhält

@Pumuckel
Gute Idee!
 
Original von pumuckelfür was soll denn das gut sein?
für einen virus z.b. wenn du nicht selbst am pc sein kannst und format c:\ eingeben kannst, macht das der virus für dich um den anderen zu ärgern. und diesen kann man in c++ programmieren, womit die frage beantwortet wäre!?!

es kann aber auch für was anderes gut sein.
 
@pumuckel

ich hab ein wenig ahnung von batch-dateien, aber in der datei die du gepostet hast seh ich nirgends was vom formatieren oder hab ich was übersehen?!


@dor_rule
WIE lösche ich denn die null-spur???
 
Zurück
Oben