Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


support23, пробуйте:
читать дальше »
Код: Выделить весь код
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_UseUpx=n
#AutoIt3Wrapper_Change2CUI=y
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <file.au3>
#Include <Date.au3>
#Include <WinAPI.au3>
#Include <Crypt.au3>

AutoItSetOption("MustDeclareVars", 1)

Local $sFolder           = "e:\Песочница\0190"

Local $sComputer         = "."
Local $oSWbemLocator     = ObjCreate("WbemScripting.SWbemLocator")
Local $oSWbemServicesEx  = $oSWbemLocator.ConnectServer($sComputer, "root\cimv2")
Local $oSWbemSink        = ObjCreate("WbemScripting.SWbemSink")
Local $oSink             = ObjEvent($oSWbemSink, "Sink_")

Local $aSplitPath, $sDrive, $sDir, $sFileName, $sExtension
Local $dtNow, $sNow

Local $sMD5
Local $oDictionary       = ObjCreate("Scripting.Dictionary")


_PathSplit($sFolder & "\", $sDrive, $sDir, $sFileName, $sExtension)

$oSWbemServicesEx.ExecNotificationQueryAsync($oSWbemSink, _
	"SELECT * FROM __InstanceOperationEvent WITHIN 1 WHERE " & _
	"TargetInstance ISA 'CIM_DataFile' AND " & _
	"TargetInstance.Drive = '" & $sDrive & "' AND " & _
	"TargetInstance.Path = '" & StringReplace($sDir, "\", "\\") & "'" _
)

_Crypt_Startup()

Do
	Sleep(100)
Until(False)

_Crypt_Shutdown()

$oDictionary.RemoveAll

$oDictionary       = 0
$oSink             = 0
$oSWbemSink        = 0
$oSWbemServicesEx  = 0
$oSWbemLocator     = 0

Exit(0)

Func Sink_OnObjectReady($oSWbemObjectEx, $oSWbemAsyncContext)
	With $oSWbemObjectEx
		$dtNow = _Date_Time_GetLocalTime()
		$sNow  = _Date_Time_SystemTimeToDateTimeStr($dtNow, 1)

		Select
			Case .Path_.Class = "__InstanceCreationEvent"
				$sMD5 = _Crypt_HashFile(.TargetInstance.Name, $CALG_MD5)

				$oDictionary.Add(.TargetInstance.Name, $sMD5)
				ConsoleWrite($sNow & _WinAPI_WideCharToMultiByte(" |  | Create: [" & .TargetInstance.Name, 1) & "]" & @CRLF)
			Case .Path_.Class = "__InstanceModificationEvent"
				$sMD5 = _Crypt_HashFile(.TargetInstance.Name, $CALG_MD5)

				If $oDictionary.Exists(.TargetInstance.Name) Then
					If $oDictionary.Item(.TargetInstance.Name) <> $sMD5 Then
						$oDictionary.Item(.TargetInstance.Name) = $sMD5
						ConsoleWrite($sNow & _WinAPI_WideCharToMultiByte(" |  | Modify: [" & .TargetInstance.Name, 1) & "]" & @CRLF)
					EndIf
				Else
					$oDictionary.Add(.TargetInstance.Name, $sMD5)
					ConsoleWrite($sNow & _WinAPI_WideCharToMultiByte(" | ± | Modify: [" & .TargetInstance.Name, 1) & "]" & @CRLF)
				EndIf
			Case .Path_.Class = "__InstanceDeletionEvent"
				$oDictionary.Remove(.TargetInstance.Name)
				ConsoleWrite($sNow & _WinAPI_WideCharToMultiByte(" |  | Delete: [" & .TargetInstance.Name, 1) & "]" & @CRLF)
			Case Else
				; Nothing to do
		EndSelect
	EndWith
EndFunc
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:29, 23-10-2012 | #5