Оцените код скрипта автоматической печати файлов

#1 13 апреля 2014 в 09:28
нужен скрипт автоматической печати файлов из определенной папки, который сидит в памяти и отслеживает появление НОВЫХ файлов в папке и отправляет их на печать...

нашел в тернете варианты:

Надо скопировать код скрипта и сохранить его в любом текстовом редакторе в файл формата vbs (Печать.vbs к примеру)
  1.  
  2. ption Explicit : Dim objWord, objDoc, wssh, objFS, objPath, objFolder, objItem, ques
  3. Const wdDoNotSaveChanges = 0
  4. Const wdPromptToSaveChanges = -2
  5. Const wdSaveChanges = -1
  6.  
  7. Set wssh = CreateObject("WScript.Shell")
  8. Set objFS = CreateObject("Scripting.FileSystemObject")
  9. Set objPath = objFS.GetFolder("d:\doc\") 'Папка, из которой производится печать
  10.  
  11. Do
  12. PrintDelInFolder objPath
  13. WScript.Sleep 1000
  14. If Minute(Time)=0 and Second(Time)<5 then 'условие проверки времени для вывода на экран вопроса о завершении своей работы
  15. ques=wssh.Popup("Не желаете завершить работу скрипта автопечати документов?"&vbCrLf&"Следующий запрос будет через час...",, "Скрипт автопечати | Lucky edited", 36)
  16. if ques=6 then WScript.Quit
  17. WScript.Sleep 5000
  18. End If
  19. Loop
  20.  
  21. Sub PrintDelInFolder(objFolder)
  22. For Each objItem In objFolder.Files
  23. If StrComp(objFS.GetExtensionName(objItem.Name), "doc", vbTextCompare) = 0 Then
  24. With WScript.CreateObject("Word.Application")
  25. Set objDoc = .Documents.Open(objItem.Path, False, True, False)
  26. objDoc.PrintOut False
  27. .Quit
  28. Set objDoc = Nothing
  29. WScript.Sleep 500
  30. objFS.DeleteFile objItem.Path ',true 'если надо удалять и доки с атрибутом "Только чтение" - уберите символ ' перед true
  31. End With
  32. End If
  33. Next
  34. End Sub
  35.  
  36. Set objWord = Nothing
  37. WScript.Quit 0
  38.  
  39. Стремление - залог успеха
  40.  
еще нашел здесь нечто похожее
habrahabr.ru/sandbox/66926/
  1.  
  2. ;Автоматическая печать PDF-файлов, появляющихся в определенной папке
  3.  
  4. ;Папка, в которой скрипт ждет PDF-файлы (к этой папке (папкам) д.б. дан доступ по сети)
  5. $gWatchFolder = "o:\pdfPrint\"
  6.  
  7. ;Основной цикл
  8. While true
  9. Local $search = FileFindFirstFile($gWatchFolder & "*.pdf")
  10. If @error Or ($search = -1) Then ContinueLoop
  11. Local $file = FileFindNextFile($search)
  12. PrintFile($gWatchFolder & $file)
  13. Sleep(1000)
  14. WEnd
  15.  
  16. ;Функция печати конкретного pdf-файла
  17. Func PrintFile($pFileName)
  18.  
  19. $pNewFileName = StringReplace( $pFileName, ".pdf", "_.pdf")
  20.  
  21. ;Ищем Фоксит ридер
  22. If FileExists("c:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe") Then
  23. $s = """c:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe"" /p """ & $pNewFileName & """"
  24. ElseIf FileExists("c:\Program Files (x86)\Foxit Software\Foxit Reader\Foxit Reader.exe") Then
  25. $s = """c:\Program Files (x86)\Foxit Software\Foxit Reader\Foxit Reader.exe"" /p """ & $pNewFileName & """"
  26. Else
  27. MsgBox(4096, "Не установлена программа Foxit Reader!", "Foxit Reader.exe does NOT exists")
  28. Exit
  29. EndIf
  30.  
  31. ;Попытаемся переимновать файл, чтобы определить, дозаписан ли он до конца.
  32. If FileMove($pFileName, $pNewFileName) Then
  33.  
  34. ;запускаем печать pdf через Фоксит Ридер и ждём, когда процесс завершится
  35. Local $PID = Run($s)
  36. ProcessWaitClose($PID)
  37.  
  38. ;удаляем файл, чтобы он повторно не печатался
  39. If Not FileDelete($pNewFileName) Then
  40. msgbox(1,"","Не удалось удалить файл " & $pNewFileName & " ! Зовите системного администратора!")
  41. Exit
  42. EndIf
  43.  
  44. EndIf
  45.  
  46. EndFunc
  47.  
  48.  
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.