Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Windows (Explorer) - Schreibzugriff blockieren (https://www.delphipraxis.net/163404-windows-explorer-schreibzugriff-blockieren.html)

trebor90 28. Sep 2011 01:13


Windows (Explorer) - Schreibzugriff blockieren
 
Guten Tag zusammen,

ich arbeite gerade an einem sehr spartanischen Programm, was die Groesse eines beliebigen Ornders ueberwacht und bei Ueberschreiten der festgelegten Grenze Alarm schlaegt. Das soll aber nicht alles sein.
Natuerlich soll bei Ueberschreiten der oberen Grenze nicht mehr geschrieben werden koennen.
Das heisst also, jeglicher Schreibzugriff muss umgehend blockiert werden.
Hat jemand eine Ahnung, wie ich das anstellen koennte?

Ich habe bereits mit Dateirechten (ACLs) gewerkelt und herumprobiert - nicht zufriedenstellend.
Zwar ist der Schreibuzgriff blockiert, aber nur solange ich den Ordner nicht oeffne, bzw. nicht ein Verzeichnis schon vorhandenen Namens hineinkopiere & ersetze (dann kopiert er einfach).
Zumal der Zugriff nicht sofort geblockt wird, sondern erst wenn ein neuer Schreibversuch unternommen wird (z. B. Kopierprozess bricht also nicht ab ...).

Gibt es also eine direkte Moeglichkeit, den schreibenden Zugriff auf ein Verzeichnis zu unterbinden?? - mit besonderem Hinblick auf den Windows Explorer, der ist ja der >Uebeltaeter< ...



Hoffe auf Hilfe - Ri
PS: Habe bereits so einige Posts hier und auf anderen Foren gelesen ...

Bernhard Geyer 28. Sep 2011 06:10

AW: Windows (Explorer) - Schribzugriff blockieren
 
Kannst du nicht Windows-Bordmittel für sowas verwenden?

trebor90 28. Sep 2011 07:51

AW: Windows (Explorer) - Schribzugriff blockieren
 
Nein, weil es sich dabei um, wie der Name schon sagt, DATENTRAEGER-Verwaltung handelt.
Und ausserdem ist dies benutzergezogen, das will ich nicht. Und ich moechte auch sehen, wieviel von dem Kontingent belegt ist, und wieviel frei (Progressbar).
Klappt ja schon alles - Ueberwachen des Verzeichnisses auf Aktivitaeten, Auslesen der Speicherplatzauslastung + visuelle Anzeige ...

Nur eben die Zugriffsblockade nicht ... :-(



--

Zacherl 28. Sep 2011 08:19

AW: Windows (Explorer) - Schribzugriff blockieren
 
Du könntest notfalls einen Hook verwenden.

trebor90 28. Sep 2011 08:24

AW: Windows (Explorer) - Schribzugriff blockieren
 
Kann man das bitte etwas genauer formulieren(?).
Ich kann damit kaum etwas anfangen (Hook, schonmal gehoert, glaube ich, ein Schlüsselereignis aufzufangen und weiterzuverarbeiten??) ...

Union 28. Sep 2011 08:27

AW: Windows (Explorer) - Schribzugriff blockieren
 
Oder ein Serverbetriebssystem (ab 2003 R2):
Code:
dirquota quota add /path:c:\klein /limit:100KB

himitsu 28. Sep 2011 08:41

AW: Windows (Explorer) - Schribzugriff blockieren
 
Hook:

Du leitest Systemfunktionen (WinAPI) um, also alle welche für Dateizugriffe vorhanden sind.
Darin prüfst du die "Erlaubnis", wenn es eraubt ist, dann wird zur ursprünglichen API weitergeleitet und wenn nicht, dann dieses entsprechend behandelt.

trebor90 28. Sep 2011 08:44

AW: Windows (Explorer) - Schreibzugriff blockieren
 
Ich soll also Windows 7 aufgeben und stattdessen ein Serverbetriebssystem aufspielen???!!!!!!!! *kopfschuettel* :?
Ich will nicht, dass ihr meine Idee neu erfindet oder sagt, wie man es anders machen kann, sondern mein wirkliches Problem, die Schreibzugriffssperre, ernst nehmt. Zumal mein Porgramm ja auch die wichtige visuelle Komponente hat.

CCRDude 28. Sep 2011 10:34

AW: Windows (Explorer) - Schribzugriff blockieren
 
Union hat Dich schon ernst genommen. Um Dich in Hooks vernünftig einzuarbeiten (also soweit, daß Du Dich trauen kannst, den Code auch auf fremden Rechnern laufen zu lassen), rechne mal eine gute Woche Arbeitszeit. Ein wirklich ernsthaftes Auseinandersetzen vorausgesetzt, also nicht mit der Attitüde "ich will nicht daß ihr...".

In der Zeit kannst Du, wenn Du das Programm nur für Dich oder ein paar bestimmte Rechner brauchen solltest, etliche Betriebssystemsumstellungen hinbekommen.

Als Alternatividee würde ich doch wieder Union erst nehmen - was die Serverversion kann, steckt vielleicht auch, nur ohne Userinterface, in anderen Versionen. Finde also raus, mit welchem Feature Win2003R2 aufwärts das macht, und schaue nach, ob sich das irgendwo in der Windows API versteckt.

Union 28. Sep 2011 10:52

AW: Windows (Explorer) - Schribzugriff blockieren
 
Windows unterstützt ja ab XP bereits DiskQuota (glaub "Kontingent" auf Deutsch). Auf Verzeichnisebene wird es wesentlich komplizierter und erfordert evtl. nicht "nur" Hooks sondern Kerneltreiber. Und bei der Begrenzung hört es ja nicht auf. Schön wäre ja auch eine Simulation der Ermittlung des freien Speicherplatzes, das kriegt ja auch Windows Server weder bei Disk- noch bei Dir-Quota hin. D.h. Benutzer sieht Eigenschaften (1 TB frei) und er hat eigentlich nur noch 1 KB zur Verfügung.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:42 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz