Festplattenüberwachung
Festplattenüberwachung
Hallo zusammen - bin flammneu, zumindest hier in dem Forum - und habe ein Problem, zu dem ich bisher im Internet nur fertige Programme gefunden habe. Also: Ich möchte gerne eine Art Festplattenüberwachung schreiben, d.h. ich muß sofort wissen, wenn der Computer eine Datei auf die Platte schreibt, damit ich nachschauen kann, ob die Datei geändert wurde. Da es sich hierbei um eine recht volle Platte handelt, kann ich nicht permanent alle Dateien auf Änderung überprüfen, das würde den Rechner total auslasten. Mir schwebt also vor, dass es irgendwo in den Tiefen des BS einen Cache oder sonst etwas gibt, dass ich auf Veränderung überwachen kann und nach nach entsprechender Auswertung vielleicht auch anderer Stellen zum Pfad und Namen der gespeicherten Datei komme, um diese dann gezielt zu prüfen und bei Veränderung weitere Aktionen auslösen kann. Ich habe gehört, dass es, was so eine Überpwachung angeht, Unterschiede ab Win2000 geben muß, bzw. es sich hier einfacher gestalten ließe. Die permanente Abfrage der freien Festplatenkapazität bringt mir auch nichts, da ich ja dann wieder auf der Platte suchen muß. Für jegliche Tipps, Anregungen, Links, wo ich dann weiter suchen kann, wäre ich sehr sehr dankbar. P.S. dass so etwas geht, sagt mir mein inneres Auge, nur bin ich darauf im Moment etwas kurzsichtig. Schon 'mal Vielen Dank vom bloody beginner...
Auf deinem Computer wird laufend neue Daten auf die Festplatte(n) geschrieben, ohne dass du es merkst. Das sind z. B. Log-Daten oder auch eine Analyse, welche Dateien du häufig verwendest (für die Defragmentierung wichtig).
Das dauernd zu überwachen, wäre keine gute Idee, da dein Rechner dann immer einiges zu tun hat. Siehe Virenschutzprogramme, die verlangsamen, je nach Hersteller, die Computergeschwindigkeit.
Du könntest probieren, ob du dich irgendwie an die WindowsAPI für Dateizugriffe "ranhängen" kannst. Das ist sehr wohl möglich, aber frage mich nicht wie. Eventuell kommt dir da aber ein Antivirenprogramm in die Quere, weil es dein Prog. für einen Virus hält.
Such in der MSDN oder in Google mal nach "Hooking the Windows API" oder etwas in der Richtung.
Greetz Laurin
Das dauernd zu überwachen, wäre keine gute Idee, da dein Rechner dann immer einiges zu tun hat. Siehe Virenschutzprogramme, die verlangsamen, je nach Hersteller, die Computergeschwindigkeit.
Du könntest probieren, ob du dich irgendwie an die WindowsAPI für Dateizugriffe "ranhängen" kannst. Das ist sehr wohl möglich, aber frage mich nicht wie. Eventuell kommt dir da aber ein Antivirenprogramm in die Quere, weil es dein Prog. für einen Virus hält.
Such in der MSDN oder in Google mal nach "Hooking the Windows API" oder etwas in der Richtung.
Greetz Laurin
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
And we're out of beta. We're releasing on time.
Die sache mit Win2k:
Meinst du zufällig die Master File Table (MFT)?
Da sind - soweit ich etz weiss - sämtliche Dateien drin aufgelistet...
Damit hättest du schonmal den Pfad der jeweiligen Datei. Das ganze ist aber weniger Betriebssystem abhängig als Dateisystem. Steht nämlich erst ab NTFS zur verfügung.
Kannst ja mal googlen und schaun ob dich das weiterbringt.
Mfg
RaVeN
Meinst du zufällig die Master File Table (MFT)?
Da sind - soweit ich etz weiss - sämtliche Dateien drin aufgelistet...
Damit hättest du schonmal den Pfad der jeweiligen Datei. Das ganze ist aber weniger Betriebssystem abhängig als Dateisystem. Steht nämlich erst ab NTFS zur verfügung.
Kannst ja mal googlen und schaun ob dich das weiterbringt.
Mfg
RaVeN
AMD Athlon64 3000+, 1024MB DDR-RAM, Geforce 8600GT, WinXP SP2, DirectX 9.0c, PureBasic 3.94
Vielen Dank schon einmal
Mir wurde der sehr hilfreiche Links von Sparcy aus dem englischen Board geschickt.
http://forums.purebasic.com/english/vie ... c&start=15
Ist auch genau das, was ich suche, nur kann ich damit (überigens ohne großen Resourcenverlust) ausschließlich eine Verzeichnisstruktur überwachen. Die Routine zeigt zwar auch an, wenn das direkt nachfolgende Verzeichnis eine Änderung erfährt, jedoch nicht weiter. Kann mann hier vielleicht noch tiefer abfragen?
Oder muß ich erst das Directory einlesen und dann für jedes Verzeichis einen eigenen Thread laufen lassen? Das ginge dann wieder auf die Resourcen...
Dank und Gruß Stefan
Mir wurde der sehr hilfreiche Links von Sparcy aus dem englischen Board geschickt.
http://forums.purebasic.com/english/vie ... c&start=15
Ist auch genau das, was ich suche, nur kann ich damit (überigens ohne großen Resourcenverlust) ausschließlich eine Verzeichnisstruktur überwachen. Die Routine zeigt zwar auch an, wenn das direkt nachfolgende Verzeichnis eine Änderung erfährt, jedoch nicht weiter. Kann mann hier vielleicht noch tiefer abfragen?
Oder muß ich erst das Directory einlesen und dann für jedes Verzeichis einen eigenen Thread laufen lassen? Das ginge dann wieder auf die Resourcen...
Dank und Gruß Stefan