Pourquoi ne pas pouvoir surveiller les modifications d'un dossier ?
[Je, tu, ils... sont parano] 
Cet UDF répond simplement à cette question: miaintenant OUI !
Une fois correctement configuré, il appellera une fonction 
callback à chaque:
- Création
 
- Suppression
 
- Modification
 
- Changement de nom
 
de n'importe quel fichier ou dossier à l'intérieur de celui configuré (oui, oui, c'est récursif ! 

 )
 

 2 modes sont possibles:
- Attente d'un évenement
La fonction d'attente est appelé une unique fois et appellera la callback dès qu'un unique évènement se produira 
- Surveillance continue
Un thread est lancé et appellera la callback autant de fois qu'il le faudra ! 
Miais un bon exemple est surement plus efficace qu'un long 
et potentiellement chiant discours !
► Afficher le texteexemple
Code : Tout sélectionner
#include "RepMonitor.au3"
; Configuration:
; On va surveiller mon bureau...
RMonitor_SetFolder("C:\Users\Jon\Desktop\")
; ...en appelant _TestCalback à chaque évènement
RMonitor_SetCallback("_TestCallback")
; ### EXEMPLE 1: Attente d'un évènement ###
While 1
    ; La boucle est interrompue à chaque attente
    RMonitor_WaitForEvents()
WEnd
; ### EXEMPLE 2: Surveillance continue ###
RMonitor_StartMonitoring()
While 1
    ; La boucle est continue
WEnd
RMonitor_StopMonitoring()
; Notre callback favorite:
;   Un seul argument de type wstr
;   Prototype C:
;       void _TestCallback(const wchar_t MSG);
;       void _TestCallback(LPCWSTR MSG); (en WINAPI)
Func _TestCallback($MSG)
    ; 1er caractère = ID de l'évènement
    Local $EventID = StringLeft($MSG, 1), _
        $CompletePath = "C:\Users\Jon\" & StringTrimLeft($MSG, 1)
    ; Reste = Chemin RELATIF du dossier|fichier
    Static $OldName
    Switch ($EventID)
        Case $FILE_ACTION_ADDED
            ConsoleWrite("Ajout: " & $CompletePath & @CRLF)
        Case $FILE_ACTION_REMOVED
            ConsoleWrite("Suppression: " & $CompletePath & @CRLF)
        Case $FILE_ACTION_MODIFIED
            ConsoleWrite("Modification: " & $CompletePath & @CRLF)
        Case $FILE_ACTION_RENAMED_OLD_NAME
            $OldName = $CompletePath
        Case $FILE_ACTION_RENAMED_NEW_NAME
            ConsoleWrite("Renommé: " & $OldName & " en " & $CompletePath & @CRLF)
    EndSwitch
EndFunc
 
Toute la demiarche étant gérée par la DLL, pas besoin de se préoccuper du pourquoi du comment !
(Techniquement parlant (pour les fadas du C), c'est du bon pointeur sur fonction le tout dans un thread 

 )
NB:
La DLL à été codée par mes soins, donc aucun danger à ce niveau là !
 
			
							Il existe plusieurs explications à ce que l'on appelle le sens de la vie:
- H2G2 nous dit 42
 
- Les Monthy Python font des bulles
 
- Tyler Durden nous parle de savonnette à la soude...
 
A mon humble avis, chacun le sien !
[blink]NYA ![/blink] >^.^<