![]() |
Defragmentier- oder datenrecovery programm realisieren?
Ich wollte mir eigentlich ein Defragmentier programm so wie DiskKeeper schreiben und auch ein Datenrecovery tool für NTFS so wie GetDataBack. Nur weiß ich nicht wie ich low level read und write mit delphi realisieren. nun meine frage: Ist dies überhaupt möglich und wenn ja welche befehle brauche ich?
Danke schon mal im vorraus ;) MfG starY |
Re: Defragmentier- oder datenrecovery programm realisieren?
Zitat:
Außerdem würde ich dir Delphi da nicht empfehlen, das aber nur nebenbei. Ansonsten werden dir die Funktionen, welche wir mit Marcel van Brakel in unserer Native API Unit zusammengetragen haben, helfen. In einem älteren Post von mir findest du die entsprechenden Infos wo du das alles findest: ![]() DiskKeeper hat außerdem noch einen Service, der mit SYSTEM-Rechten agiert. Also auch dahingehend mußt du dich kundig machen. Ansonsten findet sich in Gary Nebbetts "Windows NT/2000 Native API Reference" ganz am Ende des Buches ein Kapitel zur Wiederherstellung gelöschter Daten mit Beschreibung der internen NTFS-Strukturen. Auch diverse OpenSource-Projekte setzen sich mit den Interna von NTFS auseinander. Aber ich denke ohne ein NDA mit Microsoft wirst du qualitativ nie an DiskKeeper und ähnliche Produkte herankommen. Und mit qualitativ ist hier durchaus auch gemeint wie sicher dein Produkt seinen Job tut! |
Re: Defragmentier- oder datenrecovery programm realisieren?
Nur für Windows NT:
![]() Und wenn du das Kätzchen ganz lieb' fragst, darfst du vllt. sogar einen Blick in den Source werfen. :mrgreen: (generell gilt: sofern irgendwas mit Treibern anfängt, kannst du Delphi Language knicken.) |
Re: Defragmentier- oder datenrecovery programm realisieren?
Erstmal danke für die Antworten ;)
Ich weiß, dass ich dafür die NTFS Spezifikationen brauche ;) aber da diese mir relativ logisch vorkamen, dachte ich mir, dass diese nicht so das Hindernis darstellen. Ich habe mir nun die Native API gezogen. Kann mir wer vielleicht sagen welche *.pas ich einbinden muss und mit welchen Befehlen ich dann Bytes auslese und schreibe? Sakura habe ich eine PM geschickt und warte noch auf Antwort. MfG starY |
Re: Defragmentier- oder datenrecovery programm realisieren?
Ersteinmal: Treiber sind nicht notwendig, jedenfalls nicht unter Windows NT. Unter Windows 9x braucht man eine 16 Bit DLL oder einen Treiber, aber ich glaube der Aufwand lohnt nicht Windows 9x zu unterstützen.
Was das direkte Lesen/Schreiben von Festplatten angeht, was für Datenwiederherstellung sinnvoll wäre, habe ich hier schon mal einen Beitrag gepostet: ![]() Zweitens Zitat:
Es gibt ein sehr gutes (in Delphi geschriebenes) Tool namens Drive Rescue von Alexander Grau. War eine Zeit lang Freeware mit Quelltext, bei ![]() |
Re: Defragmentier- oder datenrecovery programm realisieren?
Zitat:
Zitat:
Zitat:
Zitat:
Ansonsten brauchst du noch einen Service - wenn das nicht wäre, wäre mein komplettes Vertrauen in Windows erschüttert, da du dann auch als Gast mal eben Dateien des Admins wiederherstellen oder "defragmentieren" kannst. Zitat:
|
Re: Defragmentier- oder datenrecovery programm realisieren?
defragmentierer einfach - da gibts ne api welche unkaputtbar ist.
schau mal bei sysinternals "inside diskdefragment" oder so hiess der artikel |
Re: Defragmentier- oder datenrecovery programm realisieren?
Zitat:
Diesen Artikel meinst du wohl?: ![]() |
Re: Defragmentier- oder datenrecovery programm realisieren?
Zitat:
Falls Du einen Treiber für Windows 9x brauchst nimm den der bei dem genannten Quelltext von Alexander Grau drin ist (sehr gut geschriebener Assembler). NativeAPI sind genauso wenig nötig! Ab Windows 2000 gibt es ziemlich bequeme Funktionen um zu Defragmentieren ![]() Zitat:
Zitat:
Zitat:
|
Re: Defragmentier- oder datenrecovery programm realisieren?
Zitat:
Zitat:
Guck dir das DDK an. Was hatte Nico da noch mal zu geschrieben? Moment: Zitat:
![]() Und zum Schluss: Olli und NicoDE wissen wo von sie sprechen. Ich kenn niemanden im der deutschsprachigen Delphi Community mit so viel Ahnung was die Interna von Windows angeht. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz