Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Array.au3>
- #include <File.au3>
- Func pauseCode($waitTime)
- While $waitTime > 0
- ConsoleWrite($waitTime & "s" & @CRLF)
- Sleep(1000)
- $waitTime -= 1
- WEnd
- EndFunc
- Func waitForWinTitle_activateWin($titlePart)
- Local $hWnd = "", $counter1 = 0, $counter2 = 0, $msg = ""
- Do
- $counter1 += 1
- Sleep(100)
- $hWnd = getWindowHandle($titlePart)
- Until $hWnd <> 0 or $counter1 > 600
- If $counter1 > 600 Then
- $msg = "Error, window counter timeout" & @CRLF & $titlePart
- ConsoleWrite($msg)
- Return $msg
- Else
- Do
- $counter2 += 1
- WinActivate($hWnd)
- Sleep(100)
- If $counter2 > 60 Then
- $msg = "Error, activate counter timeout" & @CRLF & $titlePart
- ConsoleWrite($msg)
- Return $msg
- EndIf
- Until WinActive($hWnd) <> 0
- EndIf
- Return 0
- EndFunc
- Func getWindowHandle($titlePart)
- Local $WinList = WinList()
- ;_ArrayDisplay($WinList)
- For $i = 1 to $WinList[0][0]
- If StringInStr(($WinList[$i][0]), $titlePart) then
- Return $WinList[$i][1]
- EndIf
- Next
- Return 0
- EndFunc
- Func getWindowHandle_checkText($titlePart, $textPart)
- Local $WinList = WinList()
- ;_ArrayDisplay($WinList)
- For $i = 1 to $WinList[0][0]
- If StringInStr(($WinList[$i][0]), $titlePart) Then
- If StringInStr(WinGetText($WinList[$i][1]), $textPart) Then
- Return $WinList[$i][1]
- EndIf
- EndIf
- Next
- Return 0
- EndFunc
- Func findNetworkShare($shareNamePart)
- $RemotePath = ""
- $SystemDrive = ""
- $strComputer = "."
- $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")
- $colItems = $objWMIService.ExecQuery ("Select * from Win32_NetworkConnection")
- For $objItem In $colItems
- $SystemDrive = $objItem.LocalName
- $RemotePath = $objItem.RemotePath
- If StringInStr($RemotePath, $shareNamePart) Then
- Return $SystemDrive & "\"
- EndIf
- Next
- EndFunc
- Func TextAloudLoadStatus($searchString)
- Local $out
- Local $countdown = 600
- While $countdown > 0
- Sleep(1000)
- $out = getWindowHandle_checkText("TextAloud", $searchString)
- If $out <> 0 Then
- ExitLoop
- EndIf
- $countdown -= 1
- ConsoleWrite($countdown & "s, loading file" & @CRLF)
- WEnd
- EndFunc
- Func TextAloudConversionStatus($folderLoc)
- Local $fSize1, $fSize2 = 0, $Mp3FilesLocs
- While 1
- $fSize1 = 0
- $Mp3FilesLocs = _FileListToArray($folderLoc, "*", $FLTA_FILES, True)
- For $i = 1 to UBound($Mp3FilesLocs) - 1
- $fSize1 += FileGetSize($Mp3FilesLocs[$i])
- Next
- If $fSize1 = $fSize2 Then
- ExitLoop
- EndIf
- Sleep(10000)
- $fSize2 = $fSize1
- WEnd
- EndFunc
- Func TextAloudConvertFiles()
- Local $sleep = 500, $split, $recName, $recLoc
- Local $sDrive, $sDir, $sFileName, $sExtension
- Local $NetworkDrive = findNetworkShare("ramdisk")
- Local $TextFilesLocs = _FileListToArray($NetworkDrive & "recordings", "*.txt", $FLTA_FILES, True)
- ;~ _ArrayDisplay($TextFilesLocs, "$TextFilesLocs")
- For $i = 1 to UBound($TextFilesLocs) - 1
- ; loading file
- waitForWinTitle_activateWin("TextAloud")
- Send("^o")
- waitForWinTitle_activateWin("Open")
- Send($TextFilesLocs[$i])
- Sleep($sleep)
- Send("{ENTER}")
- ; detect the end of file loading
- $split = _PathSplit($TextFilesLocs[$i], $sDrive, $sDir, $sFileName, $sExtension)
- ;_ArrayDisplay($split, "$split")
- TextAloudLoadStatus($sFileName)
- ; setup out directory
- DirCreate($sDrive & $sDir & $sFileName)
- ; setup out location
- waitForWinTitle_activateWin("TextAloud")
- Send("^{F6}")
- waitForWinTitle_activateWin("Confirm Output Directory")
- Send($sDrive & $sDir & $sFileName)
- Sleep($sleep)
- Send("{ENTER}")
- ; detect conversion done
- Sleep(10000)
- TextAloudConversionStatus($sDrive & $sDir & $sFileName)
- waitForWinTitle_activateWin("TextAloud")
- Sleep($sleep)
- Send("^!d")
- Sleep($sleep)
- FileMove($TextFilesLocs[$i], $sDrive & $sDir & $sFileName & "\" & $sFileName & $sExtension, 8)
- Next
- EndFunc
- Func find_files()
- Local $file_loc, $numOfFiles, $monitorChanges = 0
- Local $NetworkDrive = findNetworkShare("ramdisk")
- While 1
- $file_loc = _FileListToArray($NetworkDrive & "recordings", "*.txt", $FLTA_FILES, True)
- $numOfFiles = UBound($file_loc) - 1
- If $numOfFiles > $monitorChanges Then
- $monitorChanges = $numOfFiles
- TextAloudConvertFiles()
- EndIf
- Sleep(5000)
- WEnd
- EndFunc
- find_files()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement