Страница: 1 | 2 | 
		
		 
			   
			 
			 
			 
			 
			
 
  
		
     
  
    
Вопрос: Состояние файла
     
    
Добавлено: 13.09.05 18:37
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     LamerOnLine | ICQ: 334781088
 LamerOnLine | ICQ: 334781088 
      
       
  
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 21
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 16 
      
Автор ответа: LamerOnLine
 LamerOnLine



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





Разработчик Offline Client
ICQ: 233286456 
Вопросов: 34
Ответов: 5445
      
 Web-сайт:  
 Профиль |  | #17
      
Добавлено:  14.09.05 13:03
       
    
       
  
PS
 
    
Есть еще такие программы как FWatcher для локальной сети. Они могут смотреть кто к каким файлам обращается. Соответственно если файл копируется по локалке - можно использовать этот способ (исходник где-то валялся на дельфи)
		
	  
			 
	
		 
    
       
    
Номер ответа: 18 
      
Автор ответа: AndreyMp
 AndreyMp

ICQ: 237822510 
Вопросов: 28
Ответов: 1182
      
 Профиль |  | #18
       
Добавлено:  14.09.05 14:01
       
    
       
  
Извините, ходил на обед. Сейчас что-нибудь накодю.
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 19 
      
Автор ответа: AndreyMp
 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()
   ir1.Path = Drive1.Drive
ir1.Path = Drive1.Drive
   ir1.Refresh
ir1.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
 & "Создан файл: " & objWbemObject.TargetInstance.PartComponent
  Call List1.AddItem(TmpStr, 0)
End Sub
		
	  
			 
	
		 
    
       
    
Номер ответа: 20 
      
Автор ответа: AndreyMp
 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
 AndreyMp

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