$Title='QTranslate'
If Not WinWait($Title, '', 5) Then
MsgBox(0, 'Сообщение', 'Ненайдено окно переводчика'&@CRLF&$Title &@CRLF&'Завершаем работу')
Exit
EndIf
WinActivate($Title)
Sleep(300)
If Not WinActive($Title) Then
MsgBox(0, 'Сообщение', 'Окно переводчика не активно'&@CRLF&$Title &@CRLF&'Завершаем работу')
Exit
EndIf
$tmp=''
Global $Error=''
$search = _FileFindFirstFile(@ScriptDir&"\*.txt",1)
If $search = -1 Then
MsgBox(0, 'Сообщение', 'Ничего не найдено')
Exit
EndIf
$k=1
While 1
$file = _FileFindNextFile($search)
If @error Then ExitLoop
$fileH = FileOpen(@ScriptDir&'\'&$file, 0)
$text = FileRead($fileH)
FileClose($fileH)
ControlSetText($Title, '', '[CLASS:RichEdit20W; INSTANCE:1]', $text)
Sleep(100)
ControlClick($Title, '', '[CLASS:Button; INSTANCE:1]')
Sleep(200)
$i=0
While 1
$text=ControlGetText($Title, '', '[CLASS:RichEdit20W; INSTANCE:2]')
If Not StringInStr($text, @CRLF) Then
Sleep(200)
$i+=1
ToolTip($k&' - '&$file&@CRLF&' - ожидание')
Else
ControlSetText('Client for Google Translate - Free', '', '[CLASS:RichTextWndClass; INSTANCE:4]', '')
ToolTip($k&' - '&$file&@CRLF&' - вставка')
ExitLoop
EndIf
If $i = 100 Then
MsgBox(0, 'Сообщение', 'Уже 20 секунд ожидания')
_SaveError()
EndIf
WEnd
If $tmp=$text Then MsgBox(0, 'Message', 'Повтор '&$file)
$tmp=$text
ToolTip($k&' - '&$file&@CRLF&' - сохранение')
;сверка
$tmp1=StringStripWS(StringRegExpReplace($text,'(?s)(^.*?\r\n)(.*?)(\r\n.*)$','\2'), 8)
$tmp2=StringTrimRight($file, 4)
If $tmp1<>$tmp2 Then $Error&=$tmp1&' - '&$tmp2 &@CRLF
If FileExists(@ScriptDir&'\new\'&$file) Then $Error&=$file&' - уже существует, повтор' &@CRLF
$fileH = FileOpen(@ScriptDir&'\new\'&$file,2)
FileWrite($fileH, $text)
FileClose($fileH)
$k+=1
WEnd
_FileFindClose($search)
MsgBox(0, 'Сообщение', 'Готово '&@CRLF&$Error)
_SaveError()
Func _SaveError()
If $Error<>'' Then
$file = FileOpen(@ScriptDir&'\!!!_Error.txt',2)
FileWrite($file, $Error)
FileClose($file)
EndIf
Exit
EndFunc
;********************************************************************************************************************************
; #INDEX# =======================================================================================================================
; Title .........: FileFind
; AutoIt Version : 3.2.3++
; Language ......: Русский
; Description ...: Поиск файлов, включая подкаталоги, синтаксис и возвращаемое значение совпадают с FileFindFirstFile()
; FileFindNextFile(), в FileFindFirstFile("filename" [,flag]) добавлен необязатенльный параметр flag
; flag=1 - поиск файлов
; flag=2 - поиск каталогов , по умолчанию flag=3
; Author(s) .....: Nikzzzz
; ===============================================================================================================================
Func _FileFindFirstFile($sFile,$iMode=3)
Local $avStack[5]
$avStack[0] = 0
$avStack[1] = StringMid($sFile, StringInStr($sFile, "\", 0, -1) + 1)
$avStack[1] = StringRegExpReplace($avStack[1], "[\\\(\)\{\}\+\$\.]", "\\\0")
$avStack[1] = StringReplace($avStack[1], "*", ".*")
$avStack[1] = StringReplace($avStack[1], "?", ".")
$avStack[2] = $iMode
$avStack[3] = StringLeft($sFile, StringInStr($sFile, "\", 0, -1) - 1)
$avStack[4] = FileFindFirstFile($avStack[3] & "\*.*")
If $avStack[4] = -1 Then
SetError(1)
Return -1
EndIf
Return $avStack
EndFunc ;==>_FileFindFirstFile
Func _FileFindNextFile(ByRef $avStack)
Local $sFindFile
While 1
$sFindFile = FileFindNextFile($avStack[$avStack[0] + 4])
If Not @error Then
If StringInStr(FileGetAttrib($avStack[$avStack[0] + 3] & "\" & $sFindFile), "D") > 0 Then
$avStack[0] += 2
ReDim $avStack[$avStack[0] + 5]
$avStack[$avStack[0] + 3] = $avStack[$avStack[0]+1] & "\" & $sFindFile
$avStack[$avStack[0] + 4] = FileFindFirstFile($avStack[$avStack[0] + 3] & "\*.*")
If BitAND($avStack[2],2) Then Return StringMid($avStack[$avStack[0] + 3], StringLen($avStack[3]) + 2)
ContinueLoop
Else
If StringRegExpReplace($sFindFile, $avStack[1], "") = "" Then
SetError(0)
If BitAND($avStack[2],1) Then Return StringMid($avStack[$avStack[0] + 3] & "\" & $sFindFile, StringLen($avStack[3]) + 2)
Else
ContinueLoop
EndIf
EndIf
Else
If $avStack[0] = 0 Then
SetError(-1)
Return ""
Else
FileClose($avStack[$avStack[0] + 4])
$avStack[0] -= 2
ReDim $avStack[$avStack[0] + 5]
EndIf
EndIf
WEnd
EndFunc ;==>_FileFindNextFile
Func _FileFindClose(ByRef $avStack)
Local $iRetVaue
While $avStack[0] >= 0
$iRetVaue=FileClose($avStack[$avStack[0] + 4])
$avStack[0] -= 2
WEnd
ReDim $avStack[1]
Return $iRetVaue
EndFunc ;==>_FileFindClose