Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Dateisystemzugriff umleiten? (https://www.delphipraxis.net/66647-dateisystemzugriff-umleiten.html)

DGL-luke 1. Apr 2006 22:27


Dateisystemzugriff umleiten?
 
Hallo, ich würde gerne den Zugriff (schreiben + lesen) auf ein bestimmtes verzeichnis abfangen und umleiten.

Wenn also in X:\verzeichnis\ eine Datei erstellt oder gelesen werden soll, will ich das in B:\Ordner\ umleiten.
Dateisystem kann alles sein. (FAT, NTFS, CDFS...)

Geht das? Muss man da irgendwas hooken? Gibts da vielleicht schon was in den unendlichen Tiefen der Windows API?

Ach ja: Die Anwendung, die zugreifen will, hat evtl. keine Rechte, bekommt also nur eine Zugriffsverweigerung vom Dateisystem zurück. Irgendwelche temporären Umschichtungssachen gehen also nicht.

EDIT: http://www.delphipraxis.net/internal...ct.php?t=50611 - ähnliches Problem... *bääh* *keinen treiber schreiben will*

Luckie 2. Apr 2006 14:06

Re: Dateisystemzugriff umleiten?
 
Um einen Dateisystemtreiber wirst du aber nicht drumrumkommen.

brechi 2. Apr 2006 14:24

Re: Dateisystemzugriff umleiten?
 
http://uall.overclock.ch/uallCollection
zieh dir die Colelction und die example.zip

Da ist ein Beispiels namen AccessCheckNT, das genau die Umleitung vornimmt. (von einem Programm, was in einem ordner keine schreibrechte hat z.b. C:\Programme auf den Eigene Dateien Ordner)

Frickeldrecktuxer_TM 2. Apr 2006 14:26

Re: Dateisystemzugriff umleiten?
 
müsste das nicht mit hardlinks gehen?

toms 2. Apr 2006 14:48

Re: Dateisystemzugriff umleiten?
 
Zitat:

Zitat von brechi
http://uall.overclock.ch/uallCollection
zieh dir die Colelction und die example.zip

Hallo brechi,

Bei mir gibt's mit D6 einen Fehler
Zitat:

[Error] uallKernel.pas(722): Undeclared identifier: 'GetModuleFileNameEx'
Die GetModuleFileNameEx API ist doch in der PsAPI deklariert? Jedoch
mit unterschiedlichen Anzahl von Parametern zu deiner Funktion.

brechi 2. Apr 2006 14:56

Re: Dateisystemzugriff umleiten?
 
Hi toms,

Die hatte 2-3 Fehler. Die Funktion heisst GetModuleFileNameAEx. Ich hab das mal gefixt. Einfach neu laden.

DGL-luke 2. Apr 2006 15:36

Re: Dateisystemzugriff umleiten?
 
Zitat:

Zitat von Frickeldrecktuxer_TM
müsste das nicht mit hardlinks gehen?

Nope. genau in diesem Fall nicht. Das ganze ist partitionsübergreifend, und ausserdem kann ich nicht vorraussetzen, dass man in das verzeichnis einen Hardlink reinschreiben kann bzw. dass überhaupt NTFS vorhanden ist.

@brechi: Werde das ausprobieren. Es ist schön, dass es noch Leute gibt, die systemnah programmieren und das damit den anderen ersparen :thumb:

(das große "thx" gibts dann, wenns funktioniert hat ;) )

Frickeldrecktuxer_TM 2. Apr 2006 15:39

Re: Dateisystemzugriff umleiten?
 
Zitat:

Zitat von DGL-luke
Nope. genau in diesem Fall nicht. Das ganze ist partitionsübergreifend, und ausserdem kann ich nicht vorraussetzen, dass man in das verzeichnis einen Hardlink reinschreiben kann bzw. dass überhaupt NTFS vorhanden ist.

sorry. ich bin von den informationen ausgegangen die du im ersten post genannt hast. bei delphi 2005 wie es in deinem profil steht ging ich von Win2k oder besser aus und c: und c: liegen im allgemeinen auf dem gleichem volume.
ich wusste nicht daß du als fragesteller hier informationen verheimlichst. demnächst werde ich versuchen vor dem posten einen gedankenleser aufzusuchen.

DGL-luke 2. Apr 2006 15:43

Re: Dateisystemzugriff umleiten?
 
Oh, sorry, tut mir leid. Werde das sofort bereinigen :oops:

toms 2. Apr 2006 16:03

Re: Dateisystemzugriff umleiten?
 
@brechi: Jetzt findet er die uallCollectio.ini nicht

DGL-luke 2. Apr 2006 16:10

Re: Dateisystemzugriff umleiten?
 
@toms: Du meinst "uallCollection.inc"?

Ich kommentier die jetzt einfach mal aus...

brechi 2. Apr 2006 16:32

Re: Dateisystemzugriff umleiten?
 
Ja kommentier des aus.

Das Problem liegt daran, dass ich ne uallKernel Version von http://cvs.sourceforge.net/viewcvs.p...allCollection/
hinzugefügt habe. Muss des alles mal abstimmen.

DGL-luke 2. Apr 2006 16:38

Re: Dateisystemzugriff umleiten?
 
ok...

hab das ganze einfach mal kompiliert. funktioniert aber offenbar nicht. hab notepad registriert, was geschrieben, gespeichert, aber die datei wurde ganz normal "neben" der notepad.exe in C:\WINDOWS\ gespeichert. werde das jetzt mal mit der anwendung, bei der ich das brauche, testen.

PS: obenstehendes bedeutet in keinstem falle, dass ich den quelltext irgendwie verstanden bzw. den versuch dazu gemacht hätte....

brechi 2. Apr 2006 16:47

Re: Dateisystemzugriff umleiten?
 
DGL luke


1) du musst alle 3 Dateien kompilieren
2) du startest die exe und addest dort das programm
3) solltest du das programm dann starten, müsste eine nachricht kommen
4) es werden nu dateien umgeleitet wenn der user keinen zugriff auf den ordner hat, hast du also auf C:/windows zugriff, dann schreibt der auch die datei hin. es war eigentlich für eingeschränkte nutzer gedacht und programme die was in den eigenen order schreiben wollen (z.b. C:\programme) du musst dir das beispiel dann umschreiben

DGL-luke 2. Apr 2006 16:51

Re: Dateisystemzugriff umleiten?
 
Ah... mal sehen... 3 Dateien? Ich hab hier nur Delphi-Projekte (accesdll/accessexe)?! Meldung kommt auch keine...

brechi 2. Apr 2006 16:54

Re: Dateisystemzugriff umleiten?
 
es sind 3dprs demnach auch 2 mal dll und 1 mal prog

DGL-luke 2. Apr 2006 17:01

Re: Dateisystemzugriff umleiten?
 
oppsala... tatsächlcih 3 dprs....

DGL-luke 2. Apr 2006 18:01

Re: Dateisystemzugriff umleiten?
 
Yeeha!

Mein Gott ist das genial... jetzt kann ich ANNO1602 von CD spielen. :-D

Ich werde mal sehen, wo ich die Hinweismeldungen rausnehmen und durch n einfaches Beep; ersetzen kann... wohl in einer der DLLs...

Und dann nehm ich mir noch vor, das ganze irgendwann mal zu verstehen...

Echt toll, brechi, hätte nie gedacht, dass das so einfach (aus Anwendersicht ;) ) geht.

Ganz großes Danke! :kiss: (nein, keine homophilen Tendenzen)

:dancer2:

toms 2. Apr 2006 18:05

Re: Dateisystemzugriff umleiten?
 
Hallo DGL-luke

Koenntest du mal den Source dafuer uploaden?

DGL-luke 2. Apr 2006 18:09

Re: Dateisystemzugriff umleiten?
 
Für Anno1602? Nein :mrgreen:

Ähm.. ich habe am Source nichts geändert. Ich habe die drei DPRs kompiliert (uall-collection in die uses, units aus den projekten selbst entfernt), die Exe gestartet und Anno1602 eingetragen. Beim starten des Spiels kam erst mal die Meldung "Neue Instanz. Infiziieren?", da auf ja geklickt, und bei jedem I/O-Versuch seitens anno kam eine kleine Meldung "Redirect CD:\path\ to HD:\x\y\path\?", da immer schön auf ja geklickt, und schon gings. :thumb:

brechi 2. Apr 2006 19:06

Re: Dateisystemzugriff umleiten?
 
Hätte es nicht gereicht die CD auf Festplatte zu kopieren?

DGL-luke 2. Apr 2006 19:30

Re: Dateisystemzugriff umleiten?
 
*hust*Kopierschutz*hust* :drunken:

Das Setup streikt, bricht mit "zu langer Dateiname blablabla" ab, wenn ichs auf die HDD kopiere, dann fragt er nach der Cd... No-CD-Cracks gibts auch nirgends.

PS: Nein, keine Raubkopie... mit derselben CD funzt es unter Win98, komischerweise sogar ohne Cd dann :roll:

Versteh einer Sunflowers...

brechi 2. Apr 2006 20:38

Re: Dateisystemzugriff umleiten?
 
Liste der Anhänge anzeigen (Anzahl: 1)
hier hab ich das nochmal als einzelne EXE gemacht.

Ich habs aber nicht getestet obs wirklich funzt :)

toms 2. Apr 2006 21:08

Re: Dateisystemzugriff umleiten?
 
Wenn ich notepad.exe damit oeffne, schmiert's mir ab (Probiere's auch mal)

thule 14. Feb 2008 20:08

Re: Dateisystemzugriff umleiten?
 
hallo!

erstmal: NICE! :)

dann: Bei mir geht auch nicht. (immer nur errors [in runtime])

gruß.

brechi 5. Mär 2008 12:23

Re: Dateisystemzugriff umleiten?
 
Liste der Anhänge anzeigen (Anzahl: 1)
habsn ochmla compliert, ist aber ungetestet :/


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 Uhr.

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