[Delphi] Hoe bepalen wanneer een bestand wordt gel

Pagina: 1
Acties:

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 15-09 17:36

Hu9o

Schokkend

Topicstarter
Hallo,

Ik heb een vraag: Hoe kan ik vanuit een Delphi applicatie bepalen wanneer een bestand (blaat.wav) wordt afgespeeld (door welke applicatie dan ook).
Is dit eigelijk wel mogelijk? En zo nee, hoe dan wel ;)

Is er iemand die mij een beetje kan helpen? Ik heb enige ervaring met Delphi6.

Alvast bedankt.

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


Verwijderd

Kijk naar:

FindFirstChangeNotification
FindNextChangeNotification

Misschien kan het daarmee

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 15-09 17:36

Hu9o

Schokkend

Topicstarter
Bedankt, maar ik ben meer opzoek naar wanneer er in windows 'ergends' wordt omgeroepen "Speel nu bestand....." Dat er dan een actie ondervonden wordt door mijn applicatie.

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


Verwijderd

De enige mogelijkheid die ik weet is pollen mbv de win api GetFileTime.

Verwijderd

volgens mij kan dat niet
(dat pollen werkt dus ook niet)

Verwijderd

Goh, bij mij wel :)

Verwijderd

waar pol jij dan op?

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op woensdag 30 januari 2002 22:36 schreef deur het volgende:
waar pol jij dan op?
Dat bestand?

"The shell stopped unexpectedly and Explorer.exe was restarted."


Verwijderd

het systeem houd toch niet accuraat bij wanneer een bestand voor het laatst is gelezen?

Verwijderd

Pollen is misschien verkeerd uitgedrukt; maar als je om de zoveel tijd GetFileTime aanroept, en kijkt of die veranderd weet je of de file geopend is.

Verwijderd

deur:het systeem houd toch niet accuraat bij wanneer een bestand voor het laatst is gelezen?
Die van mij dus wel, over die van jou kan ik geen uitspraken doen :)

Verwijderd

en dat werkt bij LastAccessTime, dacht het toch niet?
iig niet volgens MS

Verwijderd

Uit de MS-SDK:
Not all file systems can record creation and last access time and not all file systems record them in the same manner. For example, on Windows FAT, create time has a resolution of 10 milliseconds, write time has a resolution of 2 seconds, and access time has a resolution of 1 day (really, the access date). On NTFS, access time has a resolution of 1 hour
dus je hoeft maar 1 keer per dag te pollen op fat, dan noem ik niet accuraat, als de file die dag al geopend is, veranderd de access time dus niet meer.

edit:

komt van hier

Verwijderd

Als je pollt, verandert de tijd niet; en je hebt natuurlijk ook nog SetFileTime :)

Verwijderd

ff testen, maar dat zou idd best kunnen werken.

edit:

werkt.
als je met SetFileTime de last access time in het verleden insteld wordt die geupdate zogauw de file weer geaccessed wordt.



  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 00:04

Tomatoman

Fulltime prutser

Kijk of je het bestand met CreateFile kunt openen (dwDesiredAccess = GENERIC_READ or GENERIC_WRITE). Zo niet, dan is het bestand in ieder geval door een ander proces geopend, al wordt het misschien niet afgespeeld als muziek. Kun je het wel openen, dan weet je helaas nog steeds niets, al is het zeer onwaarschijnlijk dat een ander proces het bestand heeft geopend met dwSharemode = FILE_SHARE_READ or FILE_SHARE_WRITE als het moet worden afgespeeld.

Een goede grap mag vrienden kosten.


Verwijderd

Op woensdag 30 januari 2002 22:59 schreef tomatoman het volgende:
Kijk of je het bestand met CreateFile kunt openen (dwDesiredAccess = GENERIC_READ or GENERIC_WRITE). Zo niet, dan is het bestand in ieder geval door een ander proces geopend, al wordt het misschien niet afgespeeld als muziek. Kun je het wel openen, dan weet je helaas nog steeds niets, al is het zeer onwaarschijnlijk dat een ander proces het bestand heeft geopend met dwSharemode = FILE_SHARE_READ or FILE_SHARE_WRITE als het moet worden afgespeeld.
je kan ook kijken of je het bestand kan openen met dwShareMode=0, dan weet je zeker dat het bestand geopend is of niet.
Pagina: 1