Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)

Модерирует : gyra, Maz

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

Skif_off

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
;Автоматическая печать PDF-файлов, появляющихся в определенной папке
 
Local $gWatchFolder, $sFoxitReader, $search, $file
;Папка, в которой скрипт ждет PDF-файлы (к этой папке (папкам) д.б. дан доступ по сети)
;$gWatchFolder = "d:\pdfPrint\"
$gWatchFolder = "\\Mac\Home\Documents\pdfPrint\"
 
;Ищем Фоксит ридер
If FileExists("c:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe") Then
    $sFoxitReader = "c:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe"
ElseIf FileExists("c:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe") Then
    $sFoxitReader = "c:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe"
Else
    MsgBox(48 + 4096, "Ошибка", "Не найдена программа Foxit Reader!")
    Exit
EndIf
 
;Основной цикл
While 1
    Local $search = FileFindFirstFile($gWatchFolder & "*.pdf")
    If @error Or ($search = -1) Then ContinueLoop
    Local $file = FileFindNextFile($search)
    PrintFile($gWatchFolder & $file)
    Sleep(1000)
WEnd
 
Func PrintFile($pFileName)
    Local $pNewFileName, $PID
    $pNewFileName = StringReplace($pFileName, ".pdf", "_.pdf")
    ;Попытаемся переимновать файл, чтобы определить, дозаписан ли он до конца.
    ;Если не получилось, ждём 100 мс и пробуем снова, до победного.
    While 1
        If FileMove($pFileName, $pNewFileName) Then
            ;запускаем печать pdf через Фоксит Ридер и ждём
            Local $PID = Run('"' & $sFoxitReader & '" /p "' & $pNewFileName & '"')
            ;Ждём 5 секунд и надеемся, что файл ушёл на принтер за эти 5 секунд
            Sleep(5000)
            ;Закрываем окно FoxitReader
            ProcessClose($PID)
            ExitLoop
        EndIf
        Sleep(100)
    WEnd
    ;удаляем файл, чтобы он повторно не печатался
    If Not FileDelete($pNewFileName) Then
        MsgBox(48 + 4096, "Ошибка", "Не удалось удалить файл " & $pNewFileName & " ! Зовите Илью!")
        Exit
    EndIf
EndFunc

Всего записей: 6490 | Зарегистр. 28-01-2008 | Отправлено: 18:49 17-11-2017 | Исправлено: Skif_off, 18:57 17-11-2017
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)
gyra (23-01-2020 10:51): AutoIT (Часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru