PDA

Просмотр полной версии : помогите с VBS



kola_z
26.04.2015, 12:57
Извеняюсь, может вопрос не в этот раздел....

Есть скрипт (скачан с какого то форума), рабочий. Он значит, мониторит определённую папку, и как только в неё попадает doc или xls он отправляет это дело на печать на принтер по умалчанию и удаляет документ. Если попадают файлы с другим расширением, он не делает ничего...

Так вот, надо добавит, что бы распечатывались также и jpg. Помогите неучу :confused:

Option Explicit

Dim strTargetFolder
Dim strComputer

Dim objSWbemServicesEx
Dim objSWbemEventSource
Dim objSWbemObjectEx_Event
Dim objSWbemObjectEx_CIM_DataFile


strTargetFolder = "c:\TecT"
strComputer = "."

Set objSWbemServicesEx = GetObject("WinMgmts:\\" & strComputer & "\Root\CIMV2")

Set objSWbemEventSource = objSWbemServicesEx.ExecNotificationQuery( _
"SELECT * FROM __InstanceCreationEvent WITHIN 5 WHERE " & _
"TargetInstance ISA 'CIM_DirectoryContainsFile' AND " & _
"TargetInstance.GroupComponent = 'Win32_Directory.Name=""" & Replace(strTargetFolder, "\", "\\\\") & """'")


WScript.Echo "Monitor files creation and Print documents in [" & strTargetFolder & "]..."

Do
Set objSWbemObjectEx_Event = objSWbemEventSource.NextEvent
Set objSWbemObjectEx_CIM_DataFile = objSWbemServicesEx.Get(objSWbemObjectEx_Event.Targ etInstance.PartComponent)

WScript.Echo Now() & " |  | New file: [" & objSWbemObjectEx_CIM_DataFile.Name & "]"

Select Case UCase(objSWbemObjectEx_CIM_DataFile.Extension)
Case "DOC"
PrintByWord objSWbemObjectEx_CIM_DataFile.Name
Case "XLS"
PrintByExcel objSWbemObjectEx_CIM_DataFile.Name
Case Else
' Nothing to do
End Select


WScript.Echo Now() & " |  | Delete file: [" & objSWbemObjectEx_CIM_DataFile.Name & "]"
objSWbemObjectEx_CIM_DataFile.Delete
Loop

WScript.Quit 0
'================================================= ============================

'================================================= ============================
Sub PrintByWord(strFileName)
Const wdDoNotSaveChanges = 0

Dim objWord
Dim objDoc

Set objWord = WScript.CreateObject("Word.Application")

WScript.Echo Now() & " |  | Print file: [" & strFileName & "]"

With objWord
Set objDoc = .Documents.Open(strFileName, False, True, False)

objDoc.PrintOut True

Do
WScript.Sleep 500
Loop Until .BackgroundPrintingStatus = 0

Set objDoc = Nothing

.Quit wdDoNotSaveChanges
End With

Set objWord = Nothing
End Sub
'================================================= ============================

'================================================= ============================
Sub PrintByExcel(strFileName)
Dim objExcel
Dim objWorkbook

Set objExcel = WScript.CreateObject("Excel.Application")

WScript.Echo Now() & " |  | Print file: [" & strFileName & "]"

With objExcel
Set objWorkbook = .Workbooks.Open(strFileName, 0, True)

objWorkbook.PrintOut
objWorkbook.Saved = True

Set objWorkbook = Nothing

.Quit
End With

Set objExcel = Nothing
End Sub
'================================================= ============================

Вольд
26.04.2015, 14:25
Вопрос не на тот форум.

Yegor
26.04.2015, 16:25
Почему бы не погуглить более готовые решения? Вот я сразу наткнулся: http://www.labnol.org/internet/print-from-mobile-phones/17827/ Надо только выпилить оттуда то, что касается чтения конфигов Дропбокса.

kola_z
27.04.2015, 18:32
спасибо, ща гляну