Можно ли создать событие WMI на появления файла? #135076


#0 by WiFi
Можно ли создать событие WMI на появления файла в определенной папке? Например следующим запросом: "SELECT * FROM ____InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'CIM_DataFile' AND TargetInstance.Path='C:\1C\AdminUse\Files\'"
#1 by Билли Г
Можно, только запрос надо видоизменить, посуди сам - раз файла ещё нет, то условие на TargetInstance.Path всегда будет False... Надо что-то вроде этого: SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE Targetinstance ISA 'CIM_DirectoryContainsFile' and TargetInstance.GroupComponent= 'Win32_Directory.Name=""C:\\1C\\AdminUse\\Files""'
#2 by WiFi
спасибо :) сейчас попробую... ;)
#3 by WiFi
работает однако! :)
#4 by smaharbA
Я хотел тебе только дать туже ссылку, а вот так лучче вместо мессаги код, можно в цикле еще чтото делать (код почти тотже но обрати внимание на Sink_ :) ) strComputer = "." Set objWMIService = GetObject("winmgmts:" _    & "{impersonationLevel=impersonate}!\" & _        strComputer & " ootcimv2") Set objSink = WScript.CreateObject("WbemScripting.SWbemSink", "Sink_") 'CIM_DirectoryContainsFile' call objWMIService.ExecNotificationQueryAsync (objSink, "SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " _        & "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _            & "TargetInstance.GroupComponent= " _                & "'Win32_Directory.Name=""c:\\scripts""'") MsgBox "Остановить" 'если нажать ОК то больше небудет отслеживать, это для завершения этого скрипта Sub Sink_OnObjectReady(objEvent, objAsyncContext)    MsgBox objEvent.TargetInstance.PartComponent End Sub
#5 by smaharbA
+ И на WScript.CreateObject а не просто CreateObject ...
#6 by PVasili
Это нужно в 1С? Если да то все гараздо проще, если нет то и cmd(bat) файл проверит и вернет код возврата...
#7 by WiFi
спасибо за код ;) Этот вариант мне даже больше нравится. Вообщето нет, не из 1С. А какой вариант ты предлагаешь? ОбработкаОжидания? Можно конечно и батником запускать, я лично ничего против не имею. А как ты его будешь запускать каждые 10 секунд? ;)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С