Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение > Как мониторить создание нового файла в директории


Автор: triclosan 16.5.2011, 21:50
В определенный момент в рабочей папке создается файл *.temp, мне необходимо это отслеживать каким-либо "заметным способом" - звуковой сигнал поп-ап окно и т.п. Есть ли какие-то прикладные решения? Единственное что пока удалось - заюзать http://technet.microsoft.com/en-us/sysinternals/bb896645hAzFCA&cad=rja поверх всех окон, но это не очень удобно. 

Единственное, что приходит в голову - писать маленькую "приблуду" для решения задачи, но сперва хочу убедиться, что не изобретаю велосипед.

Спасибо.

Автор: Akella 16.5.2011, 22:53
а FileMon из той же серии?

Автор: triclosan 16.5.2011, 23:02
Цитата(Akella @  16.5.2011,  22:53 Найти цитируемый пост)
а FileMon из той же серии? 


Цитата(http://technet.microsoft.com/ru-ru/sysinternals/bb896642)
Примечание: Это средство заменено программой Process Monitor.


Или в FileMon можно настраивать алерты на события? 

Автор: Akella 16.5.2011, 23:12
если честно, то не  уверен

а какие программы ты ещё рассматривал? в гуглу искал?

Добавлено через 1 минуту и 24 секунды
во например, http://www.google.com/search?ie=UTF-8&oe=UTF-8&sourceid=navclient&gfns=1&q=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0+%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD+%D0%BF%D0%B0%D0%BF%D0%BE%D0%BA#sclient=psy&hl=ru&biw=1366&bih=649&source=hp&q=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0+%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3+%D0%BF%D0%B0%D0%BF%D0%BE%D0%BA&aq=f&aqi=&aql=&oq=&pbx=1&bav=on.2,or.r_gc.r_pw.&fp=61ef59672e467e6

Автор: mihanik 22.5.2011, 20:58
Код

Set objWMIService = GetObject(«winmgmts:» _
    & «{impersonationLevel=impersonate}!\\.\root\cimv2″)
    Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
    («SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE » _
    & «Targetinstance ISA ‘CIM_DirectoryContainsFile’ and » _
    & «TargetInstance.GroupComponent= » _
    & «‘Win32_Directory.Name=»"c:\\\\pdfprint»"‘»)
    Set objFSO = CreateObject(«Scripting.FileSystemObject»)
    Do
    Set objLatestEvent = colMonitoredEvents.NextEvent
    MyFile = objLatestEvent.TargetInstance.PartComponent
    Set objLatestEvent = Nothing
    MyFile = UCase (MyFile)
    MyFile = Replace(MyFile, «\\», «\»)
    MyFile = Mid (MyFile,InStr(MyFile,»"»")+1, Len(MyFile)-InStr(MyFile,»"»")-1)
    If (InStr ( MyFile, «.PDF»)) = (Len (MyFile)-3) Then
    Set WSHShell = WScript.CreateObject(«WScript.Shell»)
    WshShell.Run «»"C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe»" -p » & «»"» & MyFile & «»"», 1, True
    Set WSHShell = Nothing
    End If
    Set objFSO = CreateObject(«Scripting.FileSystemObject»)
    objFSO.DeleteFile(MyFile)
    Set objFSO = Nothing
    Loop


Этот скрипт ждёт появление файла в директории, потом печатает его, а потом удаляет файл. smile

Автор: triclosan 22.5.2011, 21:18
mihanik, спасибо, поковыряем!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)