Любой язык - Автопечать jpeg файлов и удаление

Ответить
Аватара пользователя
aloosha@vk

Любой язык - Автопечать jpeg файлов и удаление

Сообщение aloosha@vk »

Здравствуйте, мне необходимо сделать, чтобы скрипт отправлял новый файл которые появляется в папке в другую папку и оттуда уже файл уходил на печать на принтер по умолчанию. Желательно просто скрипт который можно поместить в блокнот. Кто может помочь?
Аватара пользователя
DJ Mogarych

Re: Любой язык - Автопечать jpeg файлов и удаление

Сообщение DJ Mogarych »

Очень неконкретно сформулировано.


Цитата aloosha@vk:



отправлял новый файл которые появляется в папке в другую папку
Любой язык - Автопечать jpeg файлов и удаление




Отправлял - это копировал или переносил?

Что значит "новый файл"? По каким критериям его считать новым?

В этой папке уже есть файлы или она пустая?

Почему сразу не печатать из исходной папки до "отправки"?
Аватара пользователя
megaloman

Re: Любой язык - Автопечать jpeg файлов и удаление

Сообщение megaloman »

Что я сделал: после запуска скрипта если в исходной папке появляется файл *.jp*g

то он переносится в выходную папку и оттуда через mspaint печатается.

Если принтер при печати будет выдавать какие-то запросы - на них придется ответить

[spoiler]Код:
[/spoiler]

Код: Выделить всё

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
Ответить

Вернуться в «Скриптовые языки администрирования Windows»