VBScript. Проверка на изменение в папке

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Avsha
Сообщения: 664
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

30 янв 2009, 14:27

Есть задача.
Соорудить "check-алку" - программу проверки определенной сетевой папки с интервалом 10 минут на появление в ней файлов (папок с файлами)
с организацией сообщения-уведомления.

Какие могут быть варианты с помощью VB, VBScript реализовать эту задачу?

специализированные программы стоят денег :confused:
http://www.watchdirectory.net/download.html
Teslenko_EA
Сообщения: 520
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

30 янв 2009, 23:00

Здравствуйте Avsha.
Надеюсь правильно понял Ваш вопрос: check-алка
Возможно будет интересно: исходники
и еще (вдруг у Вас нет VB6 ;) ) PVB6.rar (portable VB6.0) 4.56 Мб
Евгений.
Аватара пользователя
Aent
Сообщения: 1108
Зарегистрирован: 01 окт 2006, 14:52
Откуда: Saratov,Russia
Контактная информация:

31 янв 2009, 01:34

Андрей Энтелис,
aentelis.livejournal.com
Avsha
Сообщения: 664
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

02 фев 2009, 10:21

Teslenko_EA, Aent спасибо за ответы.

понравились check-алка и
http://admtech.mrsu.ru/example_10.html

надеюсь доработать до требуемого.
Avsha
Сообщения: 664
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

12 фев 2009, 10:03

Вот такой вариант в виде VBS-файла получился...

Код: Выделить всё

'*******************************************************************
' Имя: MonitorFolder_v2.vbs
' Язык: VBScript
' Описание: Контроль даты и времени последнего изменения папки и вывод сообщения при изменении
'            
'*******************************************************************
Option Explicit
 
' Объявляем переменные

Dim FSO            ' Объект FileSystemObject
Dim Folder
Dim TextStream
Dim objShellApp

Dim InPath
Dim V_DateLast
Dim Str


' Задаем путь к папке, за которой осуществляем контроль
'-------------
InPath = "С:\test"


' Получаем объект FSO.Folder, для чтения даты и времени последнего изменения папки - [DT]
'-------------
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(InPath)
V_DateLast = Folder.DateLastModified 


' Пробуем открыть файл ".\Rezult.txt" и считать предыдущее значение [DT]
'-------------
Set TextStream = FSO.OpenTextFile(".\Rezult.txt", 1, True)
Str = vbNullString
While Not TextStream.AtEndOfLine
    Str = Str & TextStream.Read(1)
Wend
TextStream.Close

'MsgBox Str & "." & vbCrLf & V_DateLast & "."


' Если файла ".\Rezult.txt" еще не было, создаем его и пишем текущее значение [DT]
'-------------
If Str="" then
 Set TextStream = FSO.OpenTextFile(".\Rezult.txt", 2, True)
 TextStream.WriteLine V_DateLast
 TextStream.Close
 WScript.Quit(0)
End if


' Если текущее значение [DT] не равно предыдущему (произошли изменения в папке), то выводим сообщение
'-------------
If StrComp(V_DateLast, Str,1) <> 0 then
 MsgBox "Произошли изменения в папке: " & InPath

 '... и открываем папку
 Set objShellApp = CreateObject("Shell.Application")
 objShellApp.Explore(InPath)

 Set TextStream = FSO.OpenTextFile(".\Rezult.txt", 2, True)
 TextStream.WriteLine V_DateLast
 TextStream.Close
 WScript.Quit(0)
End If


'WScript.Echo "Конец"
WScript.Quit(0)

'************************* Конец ***********************************
... и добаваляем запуск файла в планировщик Назначенные задания с требуемым интервалом.
Гость

19 июн 2020, 13:33

Можно попросить код с проверкой файла EXE и если он изменился то выполнить Batnik.bat.
Ответить