Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Состояние файла Добавлено: 13.09.05 18:37  

Автор вопроса:  LamerOnLine | ICQ: 334781088 

Ответить

  Ответы Всего ответов: 21  

Номер ответа: 16
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #16 Добавлено: 14.09.05 12:06
Правда? Как?

Ответить

Номер ответа: 17
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #17
Добавлено: 14.09.05 13:03
PS
Есть еще такие программы как FWatcher для локальной сети. Они могут смотреть кто к каким файлам обращается. Соответственно если файл копируется по локалке - можно использовать этот способ (исходник где-то валялся на дельфи)

Ответить

Номер ответа: 18
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #18 Добавлено: 14.09.05 14:01
Извините, ходил на обед. Сейчас что-нибудь накодю.

Ответить

Номер ответа: 19
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #19 Добавлено: 14.09.05 14:25
Вот, что то получилось на отслеживание появления файлов в указанной папке (в качестве примера). На форме Drive1,Dir1,List1. Подключена Microsoft WMI Scripting ... Насчет копирования я погорячился,вернее перепутал с принтером. Там ожидается окончание задания - потом выводится инфа.При копировании мониторится сразу при create.

Option Explicit

Dim objService          As SWbemServices
Dim WithEvents objSink  As SWbemSink

Private Sub Dir1_Change()
  Form1.Caption = "Мониторинг папки " & Dir1.Path
  Call Monitoring(Dir1.Path)
End Sub

Private Sub Drive1_Change()
  ;Dir1.Path = Drive1.Drive
  ;Dir1.Refresh
End Sub

Private Sub Form_Load()
  Form1.Caption = "Мониторинг папки " & Dir1.Path
  Call Monitoring(Dir1.Path)
End Sub
Private Sub Monitoring(monFolder As String)
  Set objService = GetObject("WinMgmts:\\.\Root\CIMV2";)
  Set objSink = CreateObject("WbemScripting.SWbemSink";)
  objService.ExecNotificationQueryAsync objSink, _
         "SELECT * FROM __InstanceCreationEvent WITHIN 1 WHERE " & _
         "Targetinstance ISA 'CIM_DirectoryContainsFile' and " & _
         "TargetInstance.GroupComponent = 'Win32_Directory.Name=""" & Mid(monFolder, 1, 3) & "\\\" & Replace(Mid(monFolder, 4), "\", "/";) & """'"
End Sub

Private Sub objSink_OnObjectReady(ByVal objWbemObject As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet)
  Dim TmpStr As String
  TmpStr = Format(Now, "dd/mm/yyyy - hh:mm:ss - ";) & "Создан файл: " & objWbemObject.TargetInstance.PartComponent
  Call List1.AddItem(TmpStr, 0)
End Sub

Ответить

Номер ответа: 20
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #20 Добавлено: 14.09.05 15:29
Тут немного накидал по изменению файла (используется при копировании).
На форме List1.

Option Explicit

Dim objService          As SWbemServices
Dim WithEvents objSink  As SWbemSink

Private Sub Form_Load()
  Call Monitoring
End Sub
Private Sub Monitoring()
  Set objService = GetObject("WinMgmts:\\.\Root\CIMV2";)
  Set objSink = CreateObject("WbemScripting.SWbemSink";)
  
  objService.ExecNotificationQueryAsync objSink, _
    "SELECT * FROM __InstanceModificationEvent WITHIN 1 WHERE " _
        & "TargetInstance ISA 'CIM_DataFile' and " _
        & "TargetInstance.Name='c:\\temp\\vs_setup.msi'"
End Sub

Private Sub objSink_OnObjectReady(ByVal objWbemObject As WbemScripting.ISWbemObject, ByVal objWbemAsyncContext As WbemScripting.ISWbemNamedValueSet)
  List1.AddItem "File: " & objWbemObject.TargetInstance.Name
  List1.AddItem "New size: " & objWbemObject.TargetInstance.FileSize
  List1.AddItem "Old size: " & objWbemObject.PreviousInstance.FileSize
  List1.AddItem "-----"
  If objWbemObject.TargetInstance.FileSize = objWbemObject.PreviousInstance.FileSize Then
    MsgBox "Копирование завершено"
  End If
End Sub

Ответить

Номер ответа: 21
Автор ответа:
 AndreyMp



ICQ: 237822510 

Вопросов: 28
Ответов: 1182
 Профиль | | #21 Добавлено: 14.09.05 15:31
'c:\\temp\\vs_setup.msi' - вместо этого Ваш файл.

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам