1 (изменено: tergul56, 2022-08-03 12:50:23)

Тема: VBS: Убрать кнопку подтверждения .

Доброго времени суток Господа и Дамы .

Есть скрипт не мною создан.

Смысл скрипта , мониторинг за папкой и печать нового xls , doc файла

Подскажите пожалуйста как убрать кнопку подтверждения при выполнений скрипта  пока не нажмешь печать не пойдет. Хотелось бы чтобы автоматом все печаталось.

PS/ не судите строго, только постигаю эту тематику (сложнова-то)





Option Explicit

Dim strTargetFolder
Dim strComputer

Dim objSWbemServicesEx
Dim objSWbemEventSource
Dim objSWbemObjectEx_Event
Dim objSWbemObjectEx_CIM_DataFile


strTargetFolder = "C:\Users\oper1\Desktop\12345678901"
strComputer     = "."

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

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


WScript.Echo "МОНИТОРИНГ ПАПКИ + ПЕЧАТЬ ФАЙЛА [" & strTargetFolder & "]..."

Do
    Set objSWbemObjectEx_Event = objSWbemEventSource.NextEvent
    Set objSWbemObjectEx_CIM_DataFile = objSWbemServicesEx.Get(objSWbemObjectEx_Event.TargetInstance.PartComponent)
    
    WScript.Echo Now() & " |  | ПИСЬМО ИЛИ ФОТО ИЗ ОФИСА :    [" & 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
            ' true to do
    End Select
    
    
   
Loop

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

'=============================================================================
Sub PrintByWord(strFileName)
    Const wdDoNotSaveChanges = 0
    
    Dim objWord
    Dim objDoc
    
    Set objWord = WScript.CreateObject("Word.Application")
    
    WScript.Echo Now() & " |  | ПЕЧАТЬ ФАЙЛА :  [" & 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() & " |  | ПЕЧАТЬ ФАЙЛА:  [" & 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
'=============================================================================