AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TDirMonitor / ReadDirectoryChanges

Ein Thema von doctor-x · begonnen am 5. Jan 2012 · letzter Beitrag vom 23. Mai 2017
Antwort Antwort
Furtbichler
(Gast)

n/a Beiträge
 
#1

AW: TDirMonitor / ReadDirectoryChanges

  Alt 6. Jan 2012, 19:44
Nimmt man dann die API-Funktionen, die auf xxxxxA enden?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: TDirMonitor / ReadDirectoryChanges

  Alt 6. Jan 2012, 21:03
Nimmt man dann die API-Funktionen, die auf xxxxxA enden?
öh, ja ... A=Ansi, W=Wide
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: TDirMonitor / ReadDirectoryChanges

  Alt 23. Mai 2017, 12:42
Ich wollte kein neues Thema aufmachen und deshalb frage ich trotz des Alters von 5 Jahren mal hier nach:

TDirMonitor von JUAN CARLOS MOLINOS MESA funktioniert bei mir (XE5) so lange, bis ich versuche es zu deaktivieren. Dann stürzt das Programm vom BS her (Win10 Pro) ab und ich sehe auch im Debugger nicht, woran es liegt. Außerdem benötige ich die Funktionalität für ein Konsolen-Programm und habe daher u.a. Probleme mit der Ableitung von TComponent.
Langer Rede kurzer Sinn: ich möchte es gern verstehen und nachbauen.

Wenn ich das richtig deute, findet die eigentliche Arbeit in dem Thread (ProcessMonitor.pas ) statt?
In RDCWDirMonitor.pas wird "nur" vorab geprüft, ob man das 1. Handle für das Verzeichnis, 2. einen I/O-Port für dieses Verzeichnishandle erzeugen und man 3. ReadDirectoryChanges(); überhaupt ausführen kann - erst dann wird der Thread erzeugt.
Im Thread wiederum lauert man mit GetQueuedCompletionStatus(); darauf, dass sich etwas geändert hat und liest es dann ebenfalls mit ReadDirectoryChanges(); aus und feuert das Ereignis.

Habe ich das so richtig verstanden?

GetQueuedCompletionStatus(); habe ich auch als Verursacher für den Absturz im Verdacht. Das scheint selbst blockierend zu sein und damit kommtif self.Terminated then quit:=true nicht mehr zum Zuge - er wartet sich tot.
Ich würde mich freuen, wenn sich trotz der langen Zeit mal jemand dazu äußern könnte, damit ich umbauen kann. Hilfreich wäre es wohl allemal wegen, um meine Probleme mit dem Absturz zu klären.
Alex Winzer
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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