Что нового

[Файловая система] События файловой системы

vcomp71

Осваивающий
Сообщения
431
Репутация
25
А вот можно как-то отловить события файловой системы, например создание нового файла в директории?
На мысль натолкнула программа xstarter, которая вроде как это делает. Но, так как я :IL_AutoIt_1:
то возник вопрос - а можно ли?
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
Global $done = 0, $sWmiFileName
	Local $objService = ObjGet("WinMgmts:\\.\root\CIMV2")
	Local $oWMISink = ObjCreate("WbemScripting.SWbemSink")
	Local $objSink = ObjEvent($oWMISink, "Sink_")
	$objService.ExecNotificationQueryAsync($oWMISink, _
			"SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE " & _
			"Targetinstance ISA 'CIM_DirectoryContainsFile' and " & _
			"TargetInstance.GroupComponent= " & _
			"'Win32_Directory.Name=""C:\\\\""'")
	While Not $done
		Sleep(50)
	Wend
ConsoleWrite($sWmiFileName & @LF)
Func Sink_OnObjectReady($oOutParams, $oContext)
	$sWmiFileName &= StringRegExpReplace($oOutParams.TargetInstance.PartComponent, '.*\\(.*)"', '\1' & @LF)
	$done = 1
EndFunc   ;==>Sink_OnObjectReady
Получает событие создание файла в корне C:
 
Автор
vcomp71

vcomp71

Осваивающий
Сообщения
431
Репутация
25
Предварительно надо аудит папки включить?
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
сначала пускаешь скрипт, апосля кидаешь файлы
 
Автор
vcomp71

vcomp71

Осваивающий
Сообщения
431
Репутация
25
Кто кроме меня работал с этой библиотекой, у меня не работает. Может что не так делал и аудит таки включить надо?
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Vlasssov
Работать пока не довелось, но оба примера у меня функционируют нормально (Win7 x86, AutoIt 3.3.12.0).
 
Верх