Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi fragen zum NT Service (https://www.delphipraxis.net/12209-fragen-zum-nt-service.html)

sharkx 23. Nov 2003 00:31


fragen zum NT Service
 
Hallo,

Seit einigen Tagen grübelt mich nun eine Frage. Mit einem NT Service kann ich ja z.b. bestimmte Directorys auf verschiedene Aktivitäten beobachten. Z.b. auch wann eine neue Datei erstellt wird. Nun, ich müsste aber wissen wann eine Datei fertig erstellt wurde, sprich, wann sie von dem Programm das diese erstellt hat, freigegeben wird. Ich weiß weder welches Programm die Datei schreibt, noch weiß ich die letzendliche Größe der Datei.

Gibt es da eine Möglichkeit dies zu überwachen? Wenn Ja, wie bekomme ich den Zeitpunkt heraus?

Es geht einfach darum, das wenn ich eine Datei erstellt habe, danach ein Programm mit dem Parameter der Datei gestartet wird.

sharkx 23. Nov 2003 21:46

Re: fragen zum NT Service
 
Ich schieb den Beitrag mal ein wenig nach oben, denn es wäre mir wirklich wichtig den Zeitpunkt heraus zufinden.

APP 24. Nov 2003 06:25

Re: fragen zum NT Service
 
Hallo,

Zitat:

Zitat von sharkx
...wann sie von dem Programm das diese erstellt hat, freigegeben wird

Ich denke das mit dem "freigeben" ist so eine Sache, wenn das Programm die Datei nicht exklusiv geöffnet hat,
hast Du sowiso Zugriff darauf, ansonsten bekommst Du eine Fehlermeldung (die Du ja abfangen könntest).

Wenn Du nun auch der "Ersteller" der Datei bist, könntest Du Dein Ersteller-Programm ja so modifizieren, dass
es beim Erstellen die Datei exklusiv öffnet und nach Beenden diese wieder freigibt (andererseits könntest Du
dann ja auch eine Nachricht an Dein Service senden).

sakura 24. Nov 2003 09:49

Re: fragen zum NT Service
 
Ich würde auch ein Nachricht an den Service senden. Das ist die sicherste Art und Weise. Hier findest Du eine Komponente mit welcher Du diese Botschaften versenden kannst. Etwas weiter unten im Thread ist auch ein Beipsiel zu deren Anwendung.

...:cat:...

sharkx 24. Nov 2003 10:03

Re: fragen zum NT Service
 
hmm, Ich glab ihr habt da was nicht richtig verstanden ...

Stellt es euch mal so vor:

Den Ordner d:\download\überwache ich auf Aktivitäten. Jetzt ladest du dir mit einem x beliebigen Programm ( Ich nehm mal einfach den IE ) eine Datei in dieses Verzeichniss.
Wenn nun der IE die Datei, die du gerade runterladest, als fertig gedownloadet und beschrieben freigibt, möchte ich zusätzlich ein Programm starten der mir diese Datei auf bestimmte Kritierien prüft.


Also nochmal kurz und bündig: Der Moment in dem der IE die Datei freigibt ist für mich wichtig.

APP 24. Nov 2003 10:30

Re: fragen zum NT Service
 
Zitat:

Zitat von sharkx
...Der Moment in dem der IE die Datei freigibt ist für mich wichtig.

Das ist ein IMHO Problem, wenn Du z.B. ReadDirectoryChangesW() benutzt, bekommst Du ein Ereignis
wann eine Datei geschrieben wurde, allerdings hast Du keine Gewährleistung, dass die Datei auch
geschlossen ist. Du kannst nun auf die Datei zugriffen, außer sie ist exklusiv geöffnet.

Wann ein Prozess eine Datei freigibt, ist sehr schwer zu erfassen, aber hier (Collin Wilson) gibt es
ein Tool "File Handle Analyzer" (mit Soße), dass aber undokumentierte API-Calls benutzt.

sharkx 24. Nov 2003 11:04

Re: fragen zum NT Service
 
Das ist doch zumindest mal ein Anfang.

Wenn ich die letzendliche Dateigröße wüsste, könnte ich anhand eines timers die Datei auf ihre größe checken und hätte somit auch gleich den Zeitpunkt, wann die Datei fertig ist.

Ist leider aber nicht so .. :(

Zumal ich auch keinen Timer nutzen möchte, da dieses erheblich auf die Ressourcen gehen würde.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 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