Codeblock Onlinehilfe

TBeCbFolderWatch


TBeCbFolderWatch


Klasse zur Überwachung von Änderungen im Windows-Dateisystem

Eigenschaften:

Allgemeine-Eigenschaften

CbDirectory:C

Pfad des Ordners, der überwacht werden soll

CbWatchSubFolders:L

Unterordner überwachen

CbWatchNotifyFilters:N

Aufzählung der Datei-Aktionen, die überwacht werden sollen.

Mögliche Werte sind

fnfFileName : Erzeugung, Löschung und Namensänderung von Dateien
fnfDirName : Erzeugung, Löschung und Namensänderung von Verzeichnissen
fnfAttributes : Änderung von Attributen an Dateien oder Verzeichnissen
fnfSize : Änderung der Dateigröße
fnfLastWrite : Änderung der Eigenschaft "zuletzt geändert" einer Datei
fnfLastAccess : Änderung der Eigenschaft "zuletzt zugegriffen" einer Datei
fnfCreation : Änderung der Eigenschaft "erstellt" einer Datei
fnfSecurity : Änderung in den Sicherheitseinstellungen

CbActive:L

Aktivieren bzw. Deaktivieren der Überwachung


Events

CbOnActiveChanged

Tritt auf, wenn der Überwachungsthread startet bzw. endet

CbOnWatchNotify

Tritt auf, wenn ein Überwachungsereignis auftritt.

Einziger Parameter des Events ist ein Objekt der Klasse TBeCbFolderWatchNotifyObj, welches Informationen über das aufgetretene Ereignis enthält


Hinweis


Da die Überwachung in einem Hintergrund-Thread läuft, bedeutet die Aktivierung der Überwachung per CbActive := True nicht den unmittelbaren Start der Überwachung. Änderungen am Aktiv-Status werden über das Event CbOnActiveChanged mitgeteilt.
Die Eigenschaft CbActive wird dementsprechend gesetzt.

Die Überwachung sollte vom Codeblock vor Programm-Ende beendet werden. (CbActive := false)

Verwendung:


Die Klasse sollte im Kontext eines Formulars genutzt werden, da das Codeblock-Programm auf die

Beispiel

| oForm, oMemo, oWatchFolder  |

//******************************************************************************
// Event: Folder-Watch-Notify ist aufgetreten
//******************************************************************************
function FolderWatchWatchNotify(aSender)
| cActionText |
  cActionText := FormatDateTime('HH:MM:SS', Now()) + ': ' + aSender.CbDirectory + ' / ' + aSender.CbFileName + ' => ' + aSender.CbActionText,

  CollAdd(oMemo.Lines, cActionText),
end,

startseq,
   oForm       := CreateObject('TFormEx'),
   startseq
     oForm.Font.Name := 'Segoe UI',
     oForm.OrigCapt  := 'FolderWatch - Verzeichnis-Überwachung',

     // Memo zur Anzeige der Events
     oMemo             := CreateObject('TMemo', 'Memo', oForm, oForm),
     oMemo.Align       := alClient,
     oMemo.ScrollBars  := 2,
     CollDelete(oMemo.Lines, 1),
     oMemo.Color  := clInfoBk,

       // Folder-Watch erstellen
     oWatchFolder                      := CreateObject('TBeCbFolderWatch', 'WATCH'),
     oWatchFolder.CbDirectory          := 'C:\',
     oWatchFolder.CbWatchSubFolders    := true,
     oWatchFolder.CbWatchNotifyFilters := fnfLastWrite,
     AssignEvent(oWatchFolder, 'CbOnWatchNotify', 'FolderWatchWatchNotify'),
     oWatchFolder.CbActive             := true,
     ShowModal(oForm),
   always
     startseq,
        oWatchFolder.CbActive := false,
     onerror,
     stopseq,
     DestroyObject(oForm),
   stopseq,
onerror,
   MessageDlg('Fehler: ' + crlf + GetErrorText()),
stopseq,


Weitere Verknüpfungen