Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Ветеран


Contributor


Сообщения: 2733
Благодарности: 1698

Профиль | Отправить PM | Цитировать


Что я сделал: после запуска скрипта если в исходной папке появляется файл *.jp*g
то он переносится в выходную папку и оттуда через mspaint печатается.
Если принтер при печати будет выдавать какие-то запросы - на них придется ответить
Код: Выделить весь код
BoxIn = "D:\CMD_Forum\Где файл"
Mask = "*.jp*g"
BoxOut = "Z:\Box_Out"
Interval = "2"                      'Интервал опроса секунд

Set Sll = CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set WSll = CreateObject("WScript.Shell")

If MsgBox("Начать мониторинг?", 33) = 2 Then WScript.Quit
L = PrintPaint(FSO, Sll, WSll, BoxIn, BoxOut, Mask)

With FSO
    Drive = .GetDriveName(BoxIn)
    Folder = Replace(Mid(BoxIn, 3), "\", "\\") + "\\"
End With

Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Query = "Select * From __InstanceOperationEvent Within " + Interval + " Where Targetinstance Isa 'CIM_DataFile' And TargetInstance.Drive='" + Drive + "' And TargetInstance.Path='" + Folder + "'"
Set Events = WMI.ExecNotificationQuery(Query)

Do
    Set Evnt = Events.NextEvent()
    Set Target = Evnt.TargetInstance
    If Evnt.Path_.Class = "__InstanceCreationEvent" Then
        L = PrintPaint(FSO, Sll, WSll, BoxIn, BoxOut, Mask)
    End If
    '''''''' If L Then If MsgBox("Продолжить мониторинг?", 33) = 2 Then WScript.Quit
Loop
'End Sub
Function PrintPaint(FSO, Sll, WSll, BoxIn, BoxOut, Mask)
    PrintPaint = False
    Set Box = Sll.Namespace(BoxIn)
    Set BoxFile = Box.Items()
    BoxFile.Filter 64 + 128, Mask
    With FSO
        For Each File In BoxFile
            PrintPaint = True
            If .FileExists(BoxOut + "\" + File) Then .DeleteFile BoxOut + "\" + File, True
            .MoveFile BoxIn + "\" + File, BoxOut + "\" + File
            WSll.Run "MsPaint /pt " + BoxOut + "\" + File, 1, False
        Next
    End With
End Function

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 16:19, 14-08-2023 | #3