Что нового

Не срабатывает скрипт в Windows 7 Professional x64

alex365

Новичок
Сообщения
1
Репутация
0
Доброго времени суток форумчане!
Столкнулся с такой проблемой, сразу оговорюсь, опыта работы с Autoit не имею, возникла проблема с печатью, которую как оказалось можно решить с помощью этого замечательного языка.
Суть проблемы
Есть вот такой код, который мониторит папку (C:\pdfPrint), и как только в ней появляются pdf файлы, скрипт с помощью программы FoxitReader запускает их на печать на принтер по умолчанию.
Так вот в Windows 10 Professional x64, всё работает без нареканий, как только пытаюсь повторить тоже самое на Windows 7 Professional x64, скрипт не срабатывает и не выдает никаких ошибок. И я не знаю как настроить всплывание ошибок чтобы диагностировать на каком этапе возникает проблема.

Код:
;Автоматическая печать PDF-файлов, появляющихся в определенной папке

;Папка, в которой скрипт ждет PDF-файлы (к этой папке (папкам) д.б. дан доступ по сети)
$gWatchFolder = "C:\pdfPrint"

;Основнaой цикл
While true
   Local $search = FileFindFirstFile($gWatchFolder & "*.pdf")
   If @error Or ($search = -1) Then ContinueLoop
   Local $file = FileFindNextFile($search)
   PrintFile($gWatchFolder & $file)
   Sleep(1000)
WEnd

;Функция печати конкретного pdf-файла
Func PrintFile($pFileName)

   $pNewFileName = StringReplace( $pFileName, ".pdf", "_.pdf")

   ;Ищем Фоксит ридер
   If FileExists("c:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe") Then
      $s = """c:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe"" /p """ & $pNewFileName & """"
   ElseIf FileExists("c:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe") Then
      $s = """c:\Program Files (x86)\Foxit Software\Foxit Reader\FoxitReader.exe"" /p """ & $pNewFileName & """"
   Else
      MsgBox(4096, "Не установлена программа Foxit Reader!", "Foxit Reader.exe does NOT exists")
      Exit
   EndIf

   ;Попытаемся переимновать файл, чтобы определить, дозаписан ли он до конца.
   If FileMove($pFileName, $pNewFileName) Then

      ;запускаем печать pdf через Фоксит Ридер и ждём, когда процесс завершится
      Local $PID = Run($s)
      ProcessWaitClose($PID)

      ;удаляем файл, чтобы он повторно не печатался
      If Not FileDelete($pNewFileName) Then
         msgbox(1,"","Не удалось удалить файл " & $pNewFileName & " ! Зовите системного администратора!")
         Exit
      EndIf

   EndIf

EndFunc


Заранее благодарю!
Сообщение автоматически объединено:

Разобрался.
Дело было в "\" - который должен стоить в конце пути к папке
Код:
$gWatchFolder = "C:\pdfPrint[B]\[/B]"
 
Последнее редактирование модератором:

tonycstech

Новичок
Сообщения
94
Репутация
3
Код:
Local $search = FileFindFirstFile($gWatchFolder & "\*.pdf")

После названия папки нет \
Или добавь палку в
Код:
$gWatchFolder = "C:\pdfPrint\"

Одинаково.
 
Верх