[..] Capturer les événements sur fichiers et dossiers

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
henriclaessens
Niveau 2
Niveau 2
Messages : 23
Enregistré le : mar. 30 sept. 2008 13:47
Localisation : BELGIUM-4000-LIEGE
Status : Hors ligne

[..] Capturer les événements sur fichiers et dossiers

#1

Message par henriclaessens »

Bonjour à toutes et tous,

J'aimerais savoir s'il est possible "d'écouter" windows afin de savoir quand une opération est effectuée par l'os sur un dossier ou un fichier.

En gros, j'aimerais récupérer le fullpath des dossiers et fichiers lorsqu'ils sont créés, déplacés ou supprimé.

Je me demande si ce ne serait pas possible avec un hook, mais là j'avoue que c'est au-delà de mes compétences :oops:

Alors si quelqu'une ou un pouvait me dépanner ce serait super sympa.

A plus

Henri
EdE
Niveau 1
Niveau 1
Messages : 3
Enregistré le : dim. 17 janv. 2010 00:41
Status : Hors ligne

Re: [..] Capturer les événements sur fichiers et dossiers

#2

Message par EdE »

j'ai rencontre le meme prblème il y a quelques temps...
le plus simple est d'utiliser

le vbs de base :
[VBS]
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Const ForReading = 1
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE " _
& "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _
& "TargetInstance.GroupComponent= " _
& "'Win32_Directory.Name=""c:\\\\temp""'")

Do While TRUE
Set objEventObject = colMonitoredEvents.NextEvent()
Select Case objEventObject.Path_.Class
Case "__InstanceCreationEvent"
' dès qu un evenement wmi on lance un event windows
TriggerEvent(objEventObject.TargetInstance.PartComponent)
End Select

Loop

Function TriggerEvent(ByVal filename)ActiveItemArray = split(filename, "=")
CurrentItemFileName = ActiveItemArray(1)
CurrentItemFileNameClean = Replace(CurrentItemFileName, "\\", "\")
CurrentItemFileNameCleanFinal = Replace(CurrentItemFileNameClean, """", "")
set WshShell = WScript.CreateObject("WScript.Shell")
createEventText = "The following file was created: " & CurrentItemFileNameCleanFinal
createEventCommand = "eventcreate /id 1000 /t information /l application /d """ & createEventText & """"
WshShell.Run(createEventCommand)
End Function

Soit il faut l adapter ( pas tres complique) soit on le lance (run/_rundos...) et on recupere le stdout ....(sorti standard)
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Capturer les événements sur fichiers et dossiers

#3

Message par Tlem »

@EdE
Merci de placer votre code dans les balises prévues à cet effet.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre