;#NoTrayIcon
;============================ File Exists ============================
; Проверяет на существование файла
;=====================================================================
While 1
Dim $File[2] = ["Test.txt","Test"]
$Search = _TracingOn_Existence(1, "Test.txt", '',"__FileCreate",$File)
Wend
Func __FileCreate($Param)
FileWrite($Param[0],$Param[1])
EndFunc
;========================== Process Exists ===========================
; Проверяет на существование процесса
;=====================================================================
#cs
While 1
Dim $oMsg[4] = [16, @ScriptName, "Просесс не найден", '']
$Search = _TracingOn_Existence(2, "hh.exe", '',"_oMsg",$oMsg)
Wend
Func _oMsg($Param)
MsgBox($Param[0],$Param[1],$Param[2],$Param[3])
Exit
EndFunc
#ce
;========================== Folder Exists =============================
; Проверяет на существование папки
;=====================================================================
#cs
While 1
$Search = _TracingOn_Existence(3, @HomeDrive & '\Test', '',"_FolderCreate", @HomeDrive & '\Test')
Wend
Func _FolderCreate($Param)
DirCreate($Param)
EndFunc
#ce
;========================== Reg key Exists ============================
; Проверяет на существование ключа в реестре
;=====================================================================
#cs
While 1
Dim $Reg[4] = ["HKEY_LOCAL_MACHINE\SOFTWARE\","Test","REG_SZ","Example"]
$Search = _TracingOn_Existence(4, "HKEY_LOCAL_MACHINE\SOFTWARE\", "Test","_RegCreate",$Reg)
Wend
Func _RegCreate($Param)
RegWrite($Param[0],$Param[1],$Param[2],$Param[3])
EndFunc
#ce
;============================ File Exists ============================
; Либо всё тоже самое но без вызова функции и создания массива
;=====================================================================
#cs
While 1
$Search = _TracingOn_Existence(1, "Test.txt")
If $Search = 0 Then
ConsoleWrite("Не удаётся найти файл" & @CRLF)
Exit
Else
If $Search = 1 Then
ConsoleWrite("Файл на месте" & @CRLF)
EndIf
EndIf
Wend
#ce
; #FUNCTION# ====================================================================================================================
; Name...........: _TracingOn_Existence
; Description....: Следим за файлом, процессом, папкой, ключём реестра
; Syntax.........: _TracingOn_Existence($__Index_Exists, $__sExists_Tracking, $__sExists_Value = '', $__sFunction_Call = '', $__sFunction_Param = '', $__sTime_Tracking = 100)
; Parameters ....: $__Index_Exists - Следить за: (1 = файл, 2 = процесс, 3 = папка, 4 = ключь реестра)
; $__sExists_Tracking - Файл, процесс, папка, ключь реестра за которыми хотим следить
; $__sExists_Value - Ключ реестра
; $__sFunction_Call - По надобности можно вызвать функцию
; $__sFunction_Param - Специальный массив, передаётся в вызваную функцию
; $__sTime_Tracking - Устанавливает интервал проверки (стандартно 100)
; Return values .: Если существует то - 1
; Иначе - 0
; Author ........: Sergey2210
; Modified.......:
; Remarks .......:
; Related .......:
; Link ..........: http://autoit-script.ru/index.php?action=profile;u=3501
; E-mail.........: [email protected]
; Example .......: Yes
; ===============================================================================================================================
Func _TracingOn_Existence($__Index_Exists, $__sExists_Tracking, $__sExists_Value = '', $__sFunction_Call = '', $__sFunction_Param = '', $__sTime_Tracking = 100)
Local $__sResult_Tracking = 0 ; Результат
Sleep($__sTime_Tracking) ; Интервал проверки
If $__Index_Exists = 1 Then $__sExists = FileExists($__sExists_Tracking) ; Проверяет наличие файла
If $__Index_Exists = 2 Then $__sExists = ProcessExists($__sExists_Tracking) ; Проверяет наличие процесса
If $__Index_Exists = 3 Then $__sExists = FileExists($__sExists_Tracking) ; Проверяет наличие папки
If $__Index_Exists = 4 Then $__sExists = RegRead($__sExists_Tracking, $__sExists_Value) ; Проверяет наличие ключа
If Not $__sExists Then ; Проверяет на существование
$__sResult_Tracking = 0 ; Если не существует то результат = 0
If $__sFunction_Call <> '' Then Call($__sFunction_Call, $__sFunction_Param) ; Вызов функции
Else
$__sResult_Tracking = 1 ; Если существует то результат = 1
EndIf
Return $__sResult_Tracking ; Возвращает в начало функции
EndFunc ;==> _TracingOn_Existence