Page 1 sur 1

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

Posté : ven. 15 janv. 2010 09:16
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

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

Posté : dim. 17 janv. 2010 01:06
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)

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

Posté : dim. 17 janv. 2010 09:46
par Tlem
@EdE
Merci de placer votre code dans les balises prévues à cet effet.