Einsteigerfragen zur PROFAN Programmierung
  Suchen
 Zurück zur Übersicht
 AutorThema: überwachen
Mathias Kranze
Datum:03.05.02 17:30 Antwortenals Email verschicken  


überwachen
Ich habe einen Ordner mit verschiedenen Dateien. Nun möchte ich diesen Ordner überwachen d.h. alle Vorgehensweisen und Geschehnisse (Umbenennen, verschieben, ausschneiden, kopieren, löschen, einfügen, einfügen aus, Datei öffnen, Datei/Dateiattribute ändern usw.) sollen angezeigt und verhindert werden. Hier meine bisherigen Überlegungen. Um dies zu verhindern, möchte ich in einer whileschleife alle Möglichkeiten den Ordner oder die Dateien zu ändern, unterbinden

Verhindern folgende Funktionen:

Datei wird gelöscht (Schreibgeschützt aktivieren) = Fragen ob Datei da, wenn nicht Alarm
Datei wird umbenannt (schreibgeschützt aktivieren) = Fragen ob Datei da, wenn nicht Alarm
Datei wird ausgeschnitten (schreibgeschützt aktivieren) = Fragen ob Datei da, wenn nicht Alarm
Datei wird verschoben (schreibgeschützt aktivieren) = Fragen ob Datei da, wenn nicht Alarm
Datei ändern (Größe überwachen) = Fragen ob Datei sich in Größer verändert hat, wenn ja Alarm

Diese Sperren werden jederzeit abgefragt. Falls die Dateiattribute geändert wurden, werden sie wieder gesetzt.

Aber wie kann ich folgende Funktionen überwachen

Datei wird kopiert (kopieren/kopieren und in ein anderes Verzeichnis einfügen)
Datei wird eingefügt
Datei wird geöffnet

Ich weiss, das diese Vorgehensweise nicht die beste ist aber leider weis ich entsprechende Apis nicht. Zudem wäre es vom Vorteil nicht alle Dateien einzeln abfragen zu müssen, sondern beispielsweise einen ganzen Ordner überwachen zu können. Beispiel

Order mit Messages schützen, daß ein

1.Löschen von Dateien/Ordner verhindert
2.Umbenennen von Dateien/Ordner verhindert
3.Ausschneiden von Dateien/Ordner verhindert
4.Verschieben von Dateien/Ordner verhindert
5.Ändern von Dateien/Ordner verhindert
6.Einfügen von Dateien/Ordner verhindert

wird

Vielleicht gäbe es ja entsprechende Apis zu diesen Thema?

1.Löschen von Dateien/Ordner verhindert
Schlechte Lösung = Es wird geprüft ob Datei da ist, wenn nicht wird ein Fenster angezeigt und die
Datei wird nochmals kopiert
Gute Lösung = Erst kein löschen möglich machen (Vielleicht durch Dateiattribut/API?)

2.Umbenennen von Dateien/Ordner verhindert
Schlechte Lösung = Es wird geprüft ob die Datei mit dem Dateinamen noch da ist, wenn nicht wird ein Fenster angezeigt und die Datei wird nochmals kopiert
Gute Lösung = Erst kein umbenennen möglich machen (Vielleicht durch Dateiattribut/API?)

3.Ausschneiden von Dateien/Ordner verhindert
Schlechte Lösung = Es wird geprüft ob die Datei mit dem Dateinamen noch da ist, wenn nicht wird ein Fenster angezeigt und die Datei wird nochmals kopiert
Gute Lösung = Erst kein ausschneiden möglich machen (Vielleicht durch Dateiattribut/API?)

4.Verschieben von Dateien/Ordner verhindert
Schlechte Lösung = Es wird geprüft ob die Datei mit dem Dateinamen noch da ist, wenn nicht wird ein Fenster angezeigt und die Datei wird nochmals kopiert
Gute Lösung = Erst kein verschieben möglich machen (Vielleicht durch Dateiattribut/API?)

5.Ändern von Dateien/Ordner verhindert
Schlechte Lösung = Es wird geprüft ob die Größe der Datei mit der normalen überinstimmt, wenn nicht wird ein Fenster angezeigt und die Datei wird nochmals kopiert (Die alte wird ersetzt)
Gute Lösung = Erst kein ändern möglich machen (Vielleicht durch Dateiattribut/API?)

6.Einfügen von Dateien/Ordner verhindert
Schlechte Lösung = Es wird geprüft ob die Anzahl der Dateien mit dem Standart übereinstimmt, wenn nicht wird ein Fenster angezeigt und der Ordner wird gelöscht und Dateien werden nochmals kopiert
Gute Lösung = Erst kein einfügen möglich machen (Vielleicht durch Dateiattribut/API?)

7.Ändern von Datei/Ordnerattribute verhindert
Schlechte Lösung = Die Dateiattribute werden in einer while schleife immer wieder gesetzt
Gute Lösung = Erst kein Ändern möglich machen (Vielleicht durch API?)

Der Ordner und die Dateien müssen überwacht bzw. geschützt werden. Gibt es eine bessere Möglichkeit als die schlechte Lösung, um dies umzusetzen?



Thorsten
Datum:03.05.02 17:51 Antwortenals Email verschicken (mrk@mrk-soft.de) 


Hallo Mathias,

Nichts für Ungut, aber das geht über grenzen von Profan
absolut heraus und ist nicht realisierbar. Das Dateisystem
wird von Windows und der dazugehörigen VXD Datei gesteuert,
Zugriffsrechte lassen sich nur von Windows Selber verwalten,
und das auch nur vernünftig unter NT bzw. XP.

Wenn du gut in C++ und Assembler bist, kannste die einen
eigenen VXD Treiber schreiben, der ein Virtuelles Laufwerk
im Betriebssystem erzeugt, (mit Laufwerksbuchstaben), das
V- Laufwerk selber greift dann z.b eine Datei zu. Für
Windows ist es dann ein Datenträger wie jeder andere auch,
wird entsprechend dazu eine Benutzerverwaltung und
Zugriffssteuerung in dieser VXD eingebaut, ist der Schutz
dann machbar.

NT bzw XP bieten soetwas schon in etwa an, unter LINUX sind
solche Zugriffsrechte schon immer vorhanden gewesen.



Dr. Mabuse
Datum:03.05.02 18:04 Antwortenals Email verschicken  


Hallöchen
unser API-Guru hat wohl FindFirstFileNotification übersehen, damit kann man sogar in Profan sowas ganz einfach kontrollieren. Das passende Beispiel überlasse ich aber besser Euch Gurus.

Dr. Mabuse


Thorsten
Datum: 03.05.02 20:00 Antwortenals Email verschicken (mrk@mrk-soft.de) 


Hey Dr. Mabuse,

FindFirstChangeNotification wäre auch möglich, Naja, überwachen
ist ja auch nicht das sooo grosse Problem, ehr das Verhindern
der Aktion selber. Was mir dazu wiklich einfällt wäre, alle
Files in diesem Direktory "IN USE" zu halten, mit alleinigem
Recht. Somit könnte dann kein anderes Programm mehr auf
diese Files zugreifen oder verändern.




Horst Horn
Datum:03.05.02 17:55 Antwortenals Email verschicken (info@web-treffpunkt.de) 


>>>Der Ordner und die Dateien müssen überwacht bzw. geschützt werden. Gibt es eine bessere Möglichkeit als die schlechte Lösung, um dies umzusetzen? <<<

den NORTON-COMMANDER ?
...oder erfindet hier jemand ein neues Rad ?
CU
horst horn


Mathias Kranze
Datum:03.05.02 19:57 Antwortenals Email verschicken  


@ Thorsten
Eine Möglichkeit eine Änderung der Datei zu loaklisieren habe ich nun gefunden....

VXD Treiber wird auch für ein Filepacker benötigt und ist einiges an Arbeit

FindFirstFileNotification
Was kann diese Funktion genau




 Zurück zur Übersicht
 

 Ein kostenloses WebMart Forum
WebMart Homepage Tools kostenlos
Shortwin - denn Glück ist kein Zufall!