Любой язык - Автопечать jpeg файлов и удаление
-
aloosha@vk
Любой язык - Автопечать jpeg файлов и удаление
Здравствуйте, мне необходимо сделать, чтобы скрипт отправлял новый файл которые появляется в папке в другую папку и оттуда уже файл уходил на печать на принтер по умолчанию. Желательно просто скрипт который можно поместить в блокнот. Кто может помочь?
-
DJ Mogarych
Re: Любой язык - Автопечать jpeg файлов и удаление
Очень неконкретно сформулировано.
Цитата aloosha@vk:
отправлял новый файл которые появляется в папке в другую папку
Отправлял - это копировал или переносил?
Что значит "новый файл"? По каким критериям его считать новым?
В этой папке уже есть файлы или она пустая?
Почему сразу не печатать из исходной папки до "отправки"?
Цитата aloosha@vk:
отправлял новый файл которые появляется в папке в другую папку
Любой язык - Автопечать jpeg файлов и удаление
Отправлял - это копировал или переносил?
Что значит "новый файл"? По каким критериям его считать новым?
В этой папке уже есть файлы или она пустая?
Почему сразу не печатать из исходной папки до "отправки"?
-
megaloman
Re: Любой язык - Автопечать jpeg файлов и удаление
Что я сделал: после запуска скрипта если в исходной папке появляется файл *.jp*g
то он переносится в выходную папку и оттуда через mspaint печатается.
Если принтер при печати будет выдавать какие-то запросы - на них придется ответить
[spoiler]Код: [/spoiler]
то он переносится в выходную папку и оттуда через 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